home *** CD-ROM | disk | FTP | other *** search
Emacs Compiled Lisp | 1994-06-05 | 21.0 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: Emacs Compiled Lisp
(other/emacsCompiledLisp).
This format is not currently supported by dexvert.
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 45 4c 43 13 00 00 00 | 0a 3b 3b 3b 20 63 6f 6d |;ELC....|.;;; com|
|00000010| 70 69 6c 65 64 20 62 79 | 20 72 6d 73 40 6d 6f 6c |piled by| rms@mol|
|00000020| 65 2e 67 6e 75 2e 61 69 | 2e 6d 69 74 2e 65 64 75 |e.gnu.ai|.mit.edu|
|00000030| 20 6f 6e 20 53 75 6e 20 | 4a 75 6e 20 20 35 20 31 | on Sun |Jun 5 1|
|00000040| 33 3a 33 36 3a 33 33 20 | 31 39 39 34 0a 3b 3b 3b |3:36:33 |1994.;;;|
|00000050| 20 66 72 6f 6d 20 66 69 | 6c 65 20 2f 68 6f 6d 65 | from fi|le /home|
|00000060| 2f 66 73 66 2f 72 6d 73 | 2f 65 31 39 2f 6c 69 73 |/fsf/rms|/e19/lis|
|00000070| 70 2f 67 6f 6d 6f 6b 75 | 2e 65 6c 0a 3b 3b 3b 20 |p/gomoku|.el.;;; |
|00000080| 65 6d 61 63 73 20 76 65 | 72 73 69 6f 6e 20 31 39 |emacs ve|rsion 19|
|00000090| 2e 32 35 2e 33 2e 0a 3b | 3b 3b 20 62 79 74 65 63 |.25.3..;|;; bytec|
|000000a0| 6f 6d 70 20 76 65 72 73 | 69 6f 6e 20 46 53 46 20 |omp vers|ion FSF |
|000000b0| 32 2e 31 30 0a 3b 3b 3b | 20 6f 70 74 69 6d 69 7a |2.10.;;;| optimiz|
|000000c0| 61 74 69 6f 6e 20 69 73 | 20 6f 6e 2e 0a 3b 3b 3b |ation is| on..;;;|
|000000d0| 20 74 68 69 73 20 66 69 | 6c 65 20 75 73 65 73 20 | this fi|le uses |
|000000e0| 6f 70 63 6f 64 65 73 20 | 77 68 69 63 68 20 64 6f |opcodes |which do|
|000000f0| 20 6e 6f 74 20 65 78 69 | 73 74 20 69 6e 20 45 6d | not exi|st in Em|
|00000100| 61 63 73 20 31 38 2e 0a | 0a 28 69 66 20 28 61 6e |acs 18..|.(if (an|
|00000110| 64 20 28 62 6f 75 6e 64 | 70 20 27 65 6d 61 63 73 |d (bound|p 'emacs|
|00000120| 2d 76 65 72 73 69 6f 6e | 29 0a 09 20 28 6f 72 20 |-version|).. (or |
|00000130| 28 61 6e 64 20 28 62 6f | 75 6e 64 70 20 27 65 70 |(and (bo|undp 'ep|
|00000140| 6f 63 68 3a 3a 76 65 72 | 73 69 6f 6e 29 20 65 70 |och::ver|sion) ep|
|00000150| 6f 63 68 3a 3a 76 65 72 | 73 69 6f 6e 29 0a 09 20 |och::ver|sion).. |
|00000160| 20 20 20 20 28 73 74 72 | 69 6e 67 2d 6c 65 73 73 | (str|ing-less|
|00000170| 70 20 65 6d 61 63 73 2d | 76 65 72 73 69 6f 6e 20 |p emacs-|version |
|00000180| 22 31 39 22 29 29 29 0a | 20 20 20 20 28 65 72 72 |"19"))).| (err|
|00000190| 6f 72 20 22 60 2f 68 6f | 6d 65 2f 66 73 66 2f 72 |or "`/ho|me/fsf/r|
|000001a0| 6d 73 2f 65 31 39 2f 6c | 69 73 70 2f 67 6f 6d 6f |ms/e19/l|isp/gomo|
|000001b0| 6b 75 2e 65 6c 27 20 77 | 61 73 20 63 6f 6d 70 69 |ku.el' w|as compi|
|000001c0| 6c 65 64 20 66 6f 72 20 | 45 6d 61 63 73 20 31 39 |led for |Emacs 19|
|000001d0| 22 29 29 0a 0a 28 64 65 | 66 76 61 72 20 67 6f 6d |"))..(de|fvar gom|
|000001e0| 6f 6b 75 2d 6d 6f 64 65 | 2d 68 6f 6f 6b 20 6e 69 |oku-mode|-hook ni|
|000001f0| 6c 20 22 5c 0a 49 66 20 | 6e 6f 6e 2d 6e 69 6c 2c |l "\.If |non-nil,|
|00000200| 20 69 74 73 20 76 61 6c | 75 65 20 69 73 20 63 61 | its val|ue is ca|
|00000210| 6c 6c 65 64 20 6f 6e 20 | 65 6e 74 72 79 20 74 6f |lled on |entry to|
|00000220| 20 47 6f 6d 6f 6b 75 20 | 6d 6f 64 65 2e 22 29 0a | Gomoku |mode.").|
|00000230| 28 64 65 66 76 61 72 20 | 67 6f 6d 6f 6b 75 2d 6d |(defvar |gomoku-m|
|00000240| 6f 64 65 2d 6d 61 70 20 | 6e 69 6c 20 22 5c 0a 4c |ode-map |nil "\.L|
|00000250| 6f 63 61 6c 20 6b 65 79 | 6d 61 70 20 74 6f 20 75 |ocal key|map to u|
|00000260| 73 65 20 69 6e 20 47 6f | 6d 6f 6b 75 20 6d 6f 64 |se in Go|moku mod|
|00000270| 65 2e 22 29 0a 28 62 79 | 74 65 2d 63 6f 64 65 20 |e.").(by|te-code |
|00000280| 22 08 84 9d 00 c1 20 10 | c2 08 c3 c4 23 88 c2 08 |"..... .|....#...|
|00000290| c5 c6 23 88 c2 08 c7 c8 | 23 88 c2 08 c9 ca 23 88 |..#.....|#.....#.|
|000002a0| c2 08 cb cc 23 88 c2 08 | cd ce 23 88 c2 08 cf d0 |....#...|..#.....|
|000002b0| 23 88 c2 08 d1 d2 23 88 | c2 08 d3 d0 23 88 c2 08 |#.....#.|....#...|
|000002c0| d4 d2 23 88 c2 08 d5 ce | 23 88 c2 08 d6 cc 23 88 |..#.....|#.....#.|
|000002d0| c2 08 d7 d8 23 88 c2 08 | d9 d8 23 88 c2 08 da d8 |....#...|..#.....|
|000002e0| 23 88 c2 08 db d8 23 88 | c2 08 dc dd 23 88 c2 08 |#.....#.|....#...|
|000002f0| de df 23 88 c2 08 e0 e1 | 23 88 c2 08 e2 d2 23 88 |..#.....|#.....#.|
|00000300| c2 08 e3 d0 23 88 c2 08 | e4 cc 23 88 c2 08 e5 ce |....#...|..#.....|
|00000310| 23 88 c2 08 e6 d8 23 88 | c2 08 e7 d8 23 88 c1 87 |#.....#.|....#...|
|00000320| 22 20 5b 67 6f 6d 6f 6b | 75 2d 6d 6f 64 65 2d 6d |" [gomok|u-mode-m|
|00000330| 61 70 20 6d 61 6b 65 2d | 73 70 61 72 73 65 2d 6b |ap make-|sparse-k|
|00000340| 65 79 6d 61 70 20 64 65 | 66 69 6e 65 2d 6b 65 79 |eymap de|fine-key|
|00000350| 20 22 79 22 20 67 6f 6d | 6f 6b 75 2d 6d 6f 76 65 | "y" gom|oku-move|
|00000360| 2d 6e 77 20 22 75 22 20 | 67 6f 6d 6f 6b 75 2d 6d |-nw "u" |gomoku-m|
|00000370| 6f 76 65 2d 6e 65 20 22 | 62 22 20 67 6f 6d 6f 6b |ove-ne "|b" gomok|
|00000380| 75 2d 6d 6f 76 65 2d 73 | 77 20 22 6e 22 20 67 6f |u-move-s|w "n" go|
|00000390| 6d 6f 6b 75 2d 6d 6f 76 | 65 2d 73 65 20 22 68 22 |moku-mov|e-se "h"|
|000003a0| 20 67 6f 6d 6f 6b 75 2d | 6d 6f 76 65 2d 6c 65 66 | gomoku-|move-lef|
|000003b0| 74 20 22 6c 22 20 67 6f | 6d 6f 6b 75 2d 6d 6f 76 |t "l" go|moku-mov|
|000003c0| 65 2d 72 69 67 68 74 20 | 22 6a 22 20 67 6f 6d 6f |e-right |"j" gomo|
|000003d0| 6b 75 2d 6d 6f 76 65 2d | 64 6f 77 6e 20 22 6b 22 |ku-move-|down "k"|
|000003e0| 20 67 6f 6d 6f 6b 75 2d | 6d 6f 76 65 2d 75 70 20 | gomoku-|move-up |
|000003f0| 22 0e 22 20 22 10 22 20 | 22 06 22 20 22 02 22 20 |"." "." |"." "." |
|00000400| 22 58 22 20 67 6f 6d 6f | 6b 75 2d 68 75 6d 61 6e |"X" gomo|ku-human|
|00000410| 2d 70 6c 61 79 73 20 22 | 78 22 20 22 0d 22 20 22 |-plays "|x" "." "|
|00000420| 03 70 22 20 22 03 62 22 | 20 67 6f 6d 6f 6b 75 2d |.p" ".b"| gomoku-|
|00000430| 68 75 6d 61 6e 2d 74 61 | 6b 65 73 2d 62 61 63 6b |human-ta|kes-back|
|00000440| 20 22 03 72 22 20 67 6f | 6d 6f 6b 75 2d 68 75 6d | ".r" go|moku-hum|
|00000450| 61 6e 2d 72 65 73 69 67 | 6e 73 20 22 03 65 22 20 |an-resig|ns ".e" |
|00000460| 67 6f 6d 6f 6b 75 2d 65 | 6d 61 63 73 2d 70 6c 61 |gomoku-e|macs-pla|
|00000470| 79 73 20 5b 75 70 5d 20 | 5b 64 6f 77 6e 5d 20 5b |ys [up] |[down] [|
|00000480| 6c 65 66 74 5d 20 5b 72 | 69 67 68 74 5d 20 5b 6b |left] [r|ight] [k|
|00000490| 70 2d 65 6e 74 65 72 5d | 20 5b 69 6e 73 65 72 74 |p-enter]| [insert|
|000004a0| 5d 5d 20 34 29 0a 28 64 | 65 66 61 6c 69 61 73 20 |]] 4).(d|efalias |
|000004b0| 27 67 6f 6d 6f 6b 75 2d | 6d 6f 64 65 20 23 5b 6e |'gomoku-|mode #[n|
|000004c0| 69 6c 20 22 c0 11 c2 13 | c4 20 88 c5 0e 06 21 88 |il "....|. ....!.|
|000004d0| c7 c8 21 87 22 20 5b 67 | 6f 6d 6f 6b 75 2d 6d 6f |..!." [g|omoku-mo|
|000004e0| 64 65 20 6d 61 6a 6f 72 | 2d 6d 6f 64 65 20 22 47 |de major|-mode "G|
|000004f0| 6f 6d 6f 6b 75 22 20 6d | 6f 64 65 2d 6e 61 6d 65 |omoku" m|ode-name|
|00000500| 20 67 6f 6d 6f 6b 75 2d | 64 69 73 70 6c 61 79 2d | gomoku-|display-|
|00000510| 73 74 61 74 69 73 74 69 | 63 73 20 75 73 65 2d 6c |statisti|cs use-l|
|00000520| 6f 63 61 6c 2d 6d 61 70 | 20 67 6f 6d 6f 6b 75 2d |ocal-map| gomoku-|
|00000530| 6d 6f 64 65 2d 6d 61 70 | 20 72 75 6e 2d 68 6f 6f |mode-map| run-hoo|
|00000540| 6b 73 20 67 6f 6d 6f 6b | 75 2d 6d 6f 64 65 2d 68 |ks gomok|u-mode-h|
|00000550| 6f 6f 6b 5d 20 32 20 22 | 5c 0a 4d 61 6a 6f 72 20 |ook] 2 "|\.Major |
|00000560| 6d 6f 64 65 20 66 6f 72 | 20 70 6c 61 79 69 6e 67 |mode for| playing|
|00000570| 20 47 6f 6d 6f 6b 75 20 | 61 67 61 69 6e 73 74 20 | Gomoku |against |
|00000580| 45 6d 61 63 73 2e 0a 59 | 6f 75 20 61 6e 64 20 45 |Emacs..Y|ou and E|
|00000590| 6d 61 63 73 20 70 6c 61 | 79 20 69 6e 20 74 75 72 |macs pla|y in tur|
|000005a0| 6e 20 62 79 20 6d 61 72 | 6b 69 6e 67 20 61 20 66 |n by mar|king a f|
|000005b0| 72 65 65 20 73 71 75 61 | 72 65 2e 20 20 59 6f 75 |ree squa|re. You|
|000005c0| 20 6d 61 72 6b 20 69 74 | 20 77 69 74 68 20 58 0a | mark it| with X.|
|000005d0| 61 6e 64 20 45 6d 61 63 | 73 20 6d 61 72 6b 73 20 |and Emac|s marks |
|000005e0| 69 74 20 77 69 74 68 20 | 4f 2e 20 20 54 68 65 20 |it with |O. The |
|000005f0| 77 69 6e 6e 65 72 20 69 | 73 20 74 68 65 20 66 69 |winner i|s the fi|
|00000600| 72 73 74 20 74 6f 20 67 | 65 74 20 66 69 76 65 20 |rst to g|et five |
|00000610| 63 6f 6e 74 69 67 75 6f | 75 73 0a 6d 61 72 6b 73 |contiguo|us.marks|
|00000620| 20 68 6f 72 69 7a 6f 6e | 74 61 6c 6c 79 2c 20 76 | horizon|tally, v|
|00000630| 65 72 74 69 63 61 6c 6c | 79 20 6f 72 20 69 6e 20 |erticall|y or in |
|00000640| 64 69 61 67 6f 6e 61 6c | 2e 0a 0a 59 6f 75 20 70 |diagonal|...You p|
|00000650| 6c 61 79 20 62 79 20 6d | 6f 76 69 6e 67 20 74 68 |lay by m|oving th|
|00000660| 65 20 63 75 72 73 6f 72 | 20 6f 76 65 72 20 74 68 |e cursor| over th|
|00000670| 65 20 73 71 75 61 72 65 | 20 79 6f 75 20 63 68 6f |e square| you cho|
|00000680| 6f 73 65 20 61 6e 64 20 | 68 69 74 74 69 6e 67 20 |ose and |hitting |
|00000690| 5c 5c 5b 67 6f 6d 6f 6b | 75 2d 68 75 6d 61 6e 2d |\\[gomok|u-human-|
|000006a0| 70 6c 61 79 73 5d 2e 0a | 0a 4f 74 68 65 72 20 75 |plays]..|.Other u|
|000006b0| 73 65 66 75 6c 20 63 6f | 6d 6d 61 6e 64 73 3a 0a |seful co|mmands:.|
|000006c0| 5c 5c 7b 67 6f 6d 6f 6b | 75 2d 6d 6f 64 65 2d 6d |\\{gomok|u-mode-m|
|000006d0| 61 70 7d 0a 45 6e 74 72 | 79 20 74 6f 20 74 68 69 |ap}.Entr|y to thi|
|000006e0| 73 20 6d 6f 64 65 20 63 | 61 6c 6c 73 20 74 68 65 |s mode c|alls the|
|000006f0| 20 76 61 6c 75 65 20 6f | 66 20 60 67 6f 6d 6f 6b | value o|f `gomok|
|00000700| 75 2d 6d 6f 64 65 2d 68 | 6f 6f 6b 27 20 69 66 20 |u-mode-h|ook' if |
|00000710| 74 68 61 74 20 76 61 6c | 75 65 0a 69 73 20 6e 6f |that val|ue.is no|
|00000720| 6e 2d 6e 69 6c 2e 22 20 | 6e 69 6c 5d 29 0a 28 64 |n-nil." |nil]).(d|
|00000730| 65 66 76 61 72 20 67 6f | 6d 6f 6b 75 2d 62 6f 61 |efvar go|moku-boa|
|00000740| 72 64 2d 77 69 64 74 68 | 20 6e 69 6c 20 22 5c 0a |rd-width| nil "\.|
|00000750| 4e 75 6d 62 65 72 20 6f | 66 20 63 6f 6c 75 6d 6e |Number o|f column|
|00000760| 73 20 6f 6e 20 74 68 65 | 20 47 6f 6d 6f 6b 75 20 |s on the| Gomoku |
|00000770| 62 6f 61 72 64 2e 22 29 | 0a 28 64 65 66 76 61 72 |board.")|.(defvar|
|00000780| 20 67 6f 6d 6f 6b 75 2d | 62 6f 61 72 64 2d 68 65 | gomoku-|board-he|
|00000790| 69 67 68 74 20 6e 69 6c | 20 22 5c 0a 4e 75 6d 62 |ight nil| "\.Numb|
|000007a0| 65 72 20 6f 66 20 6c 69 | 6e 65 73 20 6f 6e 20 74 |er of li|nes on t|
|000007b0| 68 65 20 47 6f 6d 6f 6b | 75 20 62 6f 61 72 64 2e |he Gomok|u board.|
|000007c0| 22 29 0a 28 64 65 66 76 | 61 72 20 67 6f 6d 6f 6b |").(defv|ar gomok|
|000007d0| 75 2d 62 6f 61 72 64 20 | 6e 69 6c 20 22 5c 0a 56 |u-board |nil "\.V|
|000007e0| 65 63 74 6f 72 20 72 65 | 63 6f 72 64 69 6e 67 20 |ector re|cording |
|000007f0| 74 68 65 20 61 63 74 75 | 61 6c 20 73 74 61 74 65 |the actu|al state|
|00000800| 20 6f 66 20 74 68 65 20 | 47 6f 6d 6f 6b 75 20 62 | of the |Gomoku b|
|00000810| 6f 61 72 64 2e 22 29 0a | 28 64 65 66 76 61 72 20 |oard.").|(defvar |
|00000820| 67 6f 6d 6f 6b 75 2d 76 | 65 63 74 6f 72 2d 6c 65 |gomoku-v|ector-le|
|00000830| 6e 67 74 68 20 6e 69 6c | 20 22 5c 0a 4c 65 6e 67 |ngth nil| "\.Leng|
|00000840| 74 68 20 6f 66 20 67 6f | 6d 6f 6b 75 2d 62 6f 61 |th of go|moku-boa|
|00000850| 72 64 20 76 65 63 74 6f | 72 2e 22 29 0a 28 64 65 |rd vecto|r.").(de|
|00000860| 66 76 61 72 20 67 6f 6d | 6f 6b 75 2d 64 72 61 77 |fvar gom|oku-draw|
|00000870| 2d 6c 69 6d 69 74 20 6e | 69 6c 20 22 5c 0a 41 66 |-limit n|il "\.Af|
|00000880| 74 65 72 20 68 6f 77 20 | 6d 61 6e 79 20 6d 6f 76 |ter how |many mov|
|00000890| 65 73 20 77 69 6c 6c 20 | 45 6d 61 63 73 20 6f 66 |es will |Emacs of|
|000008a0| 66 65 72 20 61 20 64 72 | 61 77 3f 22 29 0a 28 64 |fer a dr|aw?").(d|
|000008b0| 65 66 61 6c 69 61 73 20 | 27 67 6f 6d 6f 6b 75 2d |efalias |'gomoku-|
|000008c0| 78 79 2d 74 6f 2d 69 6e | 64 65 78 20 23 5b 28 78 |xy-to-in|dex #[(x|
|000008d0| 20 79 29 20 22 08 09 5f | 5c 6e 08 5c 5c 5c 5c 87 | y) ".._|\n.\\\\.|
|000008e0| 22 20 5b 79 20 67 6f 6d | 6f 6b 75 2d 62 6f 61 72 |" [y gom|oku-boar|
|000008f0| 64 2d 77 69 64 74 68 20 | 78 5d 20 33 20 22 5c 0a |d-width |x] 3 "\.|
|00000900| 54 72 61 6e 73 6c 61 74 | 65 20 58 2c 20 59 20 63 |Translat|e X, Y c|
|00000910| 61 72 74 65 73 69 61 6e | 20 63 6f 6f 72 64 73 20 |artesian| coords |
|00000920| 69 6e 74 6f 20 74 68 65 | 20 63 6f 72 72 65 73 70 |into the| corresp|
|00000930| 6f 6e 64 69 6e 67 20 62 | 6f 61 72 64 20 69 6e 64 |onding b|oard ind|
|00000940| 65 78 2e 22 5d 29 0a 28 | 64 65 66 61 6c 69 61 73 |ex."]).(|defalias|
|00000950| 20 27 67 6f 6d 6f 6b 75 | 2d 69 6e 64 65 78 2d 74 | 'gomoku|-index-t|
|00000960| 6f 2d 78 20 23 5b 28 69 | 6e 64 65 78 29 20 22 08 |o-x #[(i|ndex) ".|
|00000970| 09 54 a6 87 22 20 5b 69 | 6e 64 65 78 20 67 6f 6d |.T.." [i|ndex gom|
|00000980| 6f 6b 75 2d 62 6f 61 72 | 64 2d 77 69 64 74 68 5d |oku-boar|d-width]|
|00000990| 20 32 20 22 5c 0a 52 65 | 74 75 72 6e 20 63 6f 72 | 2 "\.Re|turn cor|
|000009a0| 72 65 73 70 6f 6e 64 69 | 6e 67 20 78 2d 63 6f 6f |respondi|ng x-coo|
|000009b0| 72 64 20 6f 66 20 62 6f | 61 72 64 20 49 4e 44 45 |rd of bo|ard INDE|
|000009c0| 58 2e 22 5d 29 0a 28 64 | 65 66 61 6c 69 61 73 20 |X."]).(d|efalias |
|000009d0| 27 67 6f 6d 6f 6b 75 2d | 69 6e 64 65 78 2d 74 6f |'gomoku-|index-to|
|000009e0| 2d 79 20 23 5b 28 69 6e | 64 65 78 29 20 22 08 09 |-y #[(in|dex) "..|
|000009f0| 54 a5 87 22 20 5b 69 6e | 64 65 78 20 67 6f 6d 6f |T.." [in|dex gomo|
|00000a00| 6b 75 2d 62 6f 61 72 64 | 2d 77 69 64 74 68 5d 20 |ku-board|-width] |
|00000a10| 32 20 22 5c 0a 52 65 74 | 75 72 6e 20 63 6f 72 72 |2 "\.Ret|urn corr|
|00000a20| 65 73 70 6f 6e 64 69 6e | 67 20 79 2d 63 6f 6f 72 |espondin|g y-coor|
|00000a30| 64 20 6f 66 20 62 6f 61 | 72 64 20 49 4e 44 45 58 |d of boa|rd INDEX|
|00000a40| 2e 22 5d 29 0a 28 64 65 | 66 61 6c 69 61 73 20 27 |."]).(de|falias '|
|00000a50| 67 6f 6d 6f 6b 75 2d 69 | 6e 69 74 2d 62 6f 61 72 |gomoku-i|nit-boar|
|00000a60| 64 20 23 5b 6e 69 6c 20 | 22 c0 09 c2 5c 22 13 c2 |d #[nil |"...\"..|
|00000a70| 09 53 1c 1d 0d 0e 06 58 | 83 24 00 0b 0d c7 49 88 |.S.....X|.$....I.|
|00000a80| 0b 5c 66 c7 49 88 0d 54 | 15 5c 66 53 14 82 5c 6e |.\f.I..T|.\fS..\n|
|00000a90| 00 2a c2 1d c2 09 57 85 | 3d 00 0b 0d c7 49 88 0d |.*....W.|=....I..|
|00000aa0| 0e 06 c8 5c 5c 5c 5c 89 | 15 82 28 00 29 87 22 20 |...\\\\.|..(.)." |
|00000ab0| 5b 6d 61 6b 65 2d 76 65 | 63 74 6f 72 20 67 6f 6d |[make-ve|ctor gom|
|00000ac0| 6f 6b 75 2d 76 65 63 74 | 6f 72 2d 6c 65 6e 67 74 |oku-vect|or-lengt|
|00000ad0| 68 20 30 20 67 6f 6d 6f | 6b 75 2d 62 6f 61 72 64 |h 0 gomo|ku-board|
|00000ae0| 20 69 69 20 69 20 67 6f | 6d 6f 6b 75 2d 62 6f 61 | ii i go|moku-boa|
|00000af0| 72 64 2d 77 69 64 74 68 | 20 2d 31 20 31 5d 20 34 |rd-width| -1 1] 4|
|00000b00| 20 22 5c 0a 43 72 65 61 | 74 65 20 74 68 65 20 67 | "\.Crea|te the g|
|00000b10| 6f 6d 6f 6b 75 2d 62 6f | 61 72 64 20 76 65 63 74 |omoku-bo|ard vect|
|00000b20| 6f 72 20 61 6e 64 20 66 | 69 6c 6c 20 69 74 20 77 |or and f|ill it w|
|00000b30| 69 74 68 20 69 6e 69 74 | 69 61 6c 20 76 61 6c 75 |ith init|ial valu|
|00000b40| 65 73 2e 22 5d 29 0a 28 | 64 65 66 76 61 72 20 67 |es."]).(|defvar g|
|00000b50| 6f 6d 6f 6b 75 2d 73 63 | 6f 72 65 2d 74 61 62 6c |omoku-sc|ore-tabl|
|00000b60| 65 20 6e 69 6c 20 22 5c | 0a 56 65 63 74 6f 72 20 |e nil "\|.Vector |
|00000b70| 72 65 63 6f 72 64 69 6e | 67 20 74 68 65 20 61 63 |recordin|g the ac|
|00000b80| 74 75 61 6c 20 73 63 6f | 72 65 20 6f 66 20 74 68 |tual sco|re of th|
|00000b90| 65 20 66 72 65 65 20 73 | 71 75 61 72 65 73 2e 22 |e free s|quares."|
|00000ba0| 29 0a 28 64 65 66 63 6f | 6e 73 74 20 6e 69 6c 2d |).(defco|nst nil-|
|00000bb0| 73 63 6f 72 65 20 37 20 | 22 5c 0a 53 63 6f 72 65 |score 7 |"\.Score|
|00000bc0| 20 6f 66 20 61 6e 20 65 | 6d 70 74 79 20 71 74 75 | of an e|mpty qtu|
|00000bd0| 70 6c 65 2e 22 29 0a 28 | 64 65 66 63 6f 6e 73 74 |ple.").(|defconst|
|00000be0| 20 58 73 63 6f 72 65 20 | 31 35 20 22 5c 0a 53 63 | Xscore |15 "\.Sc|
|00000bf0| 6f 72 65 20 6f 66 20 61 | 20 71 74 75 70 6c 65 20 |ore of a| qtuple |
|00000c00| 63 6f 6e 74 61 69 6e 69 | 6e 67 20 6f 6e 65 20 58 |containi|ng one X|
|00000c10| 2e 22 29 0a 28 64 65 66 | 63 6f 6e 73 74 20 58 58 |.").(def|const XX|
|00000c20| 73 63 6f 72 65 20 34 30 | 30 20 22 5c 0a 53 63 6f |score 40|0 "\.Sco|
|00000c30| 72 65 20 6f 66 20 61 20 | 71 74 75 70 6c 65 20 63 |re of a |qtuple c|
|00000c40| 6f 6e 74 61 69 6e 69 6e | 67 20 74 77 6f 20 58 27 |ontainin|g two X'|
|00000c50| 73 2e 22 29 0a 28 64 65 | 66 63 6f 6e 73 74 20 58 |s.").(de|fconst X|
|00000c60| 58 58 73 63 6f 72 65 20 | 31 38 30 30 20 22 5c 0a |XXscore |1800 "\.|
|00000c70| 53 63 6f 72 65 20 6f 66 | 20 61 20 71 74 75 70 6c |Score of| a qtupl|
|00000c80| 65 20 63 6f 6e 74 61 69 | 6e 69 6e 67 20 74 68 72 |e contai|ning thr|
|00000c90| 65 65 20 58 27 73 2e 22 | 29 0a 28 64 65 66 63 6f |ee X's."|).(defco|
|00000ca0| 6e 73 74 20 58 58 58 58 | 73 63 6f 72 65 20 31 30 |nst XXXX|score 10|
|00000cb0| 30 30 30 30 20 22 5c 0a | 53 63 6f 72 65 20 6f 66 |0000 "\.|Score of|
|00000cc0| 20 61 20 71 74 75 70 6c | 65 20 63 6f 6e 74 61 69 | a qtupl|e contai|
|00000cd0| 6e 69 6e 67 20 66 6f 75 | 72 20 58 27 73 2e 22 29 |ning fou|r X's.")|
|00000ce0| 0a 28 64 65 66 63 6f 6e | 73 74 20 4f 73 63 6f 72 |.(defcon|st Oscor|
|00000cf0| 65 20 33 35 20 22 5c 0a | 53 63 6f 72 65 20 6f 66 |e 35 "\.|Score of|
|00000d00| 20 61 20 71 74 75 70 6c | 65 20 63 6f 6e 74 61 69 | a qtupl|e contai|
|00000d10| 6e 69 6e 67 20 6f 6e 65 | 20 4f 2e 22 29 0a 28 64 |ning one| O.").(d|
|00000d20| 65 66 63 6f 6e 73 74 20 | 4f 4f 73 63 6f 72 65 20 |efconst |OOscore |
|00000d30| 38 30 30 20 22 5c 0a 53 | 63 6f 72 65 20 6f 66 20 |800 "\.S|core of |
|00000d40| 61 20 71 74 75 70 6c 65 | 20 63 6f 6e 74 61 69 6e |a qtuple| contain|
|00000d50| 69 6e 67 20 74 77 6f 20 | 4f 27 73 2e 22 29 0a 28 |ing two |O's.").(|
|00000d60| 64 65 66 63 6f 6e 73 74 | 20 4f 4f 4f 73 63 6f 72 |defconst| OOOscor|
|00000d70| 65 20 31 35 30 30 30 20 | 22 5c 0a 53 63 6f 72 65 |e 15000 |"\.Score|
|00000d80| 20 6f 66 20 61 20 71 74 | 75 70 6c 65 20 63 6f 6e | of a qt|uple con|
|00000d90| 74 61 69 6e 69 6e 67 20 | 74 68 72 65 65 20 4f 27 |taining |three O'|
|00000da0| 73 2e 22 29 0a 28 64 65 | 66 63 6f 6e 73 74 20 4f |s.").(de|fconst O|
|00000db0| 4f 4f 4f 73 63 6f 72 65 | 20 38 30 30 30 30 30 20 |OOOscore| 800000 |
|00000dc0| 22 5c 0a 53 63 6f 72 65 | 20 6f 66 20 61 20 71 74 |"\.Score| of a qt|
|00000dd0| 75 70 6c 65 20 63 6f 6e | 74 61 69 6e 69 6e 67 20 |uple con|taining |
|00000de0| 66 6f 75 72 20 4f 27 73 | 2e 22 29 0a 28 64 65 66 |four O's|.").(def|
|00000df0| 63 6f 6e 73 74 20 67 6f | 6d 6f 6b 75 2d 73 63 6f |const go|moku-sco|
|00000e00| 72 65 2d 74 72 61 6e 73 | 2d 74 61 62 6c 65 20 28 |re-trans|-table (|
|00000e10| 62 79 74 65 2d 63 6f 64 | 65 20 22 c0 09 5c 6e 0b |byte-cod|e "..\n.|
|00000e20| 5c 66 0d c6 0e 07 c6 89 | 89 89 89 0e 08 c6 89 89 |\f......|........|
|00000e30| 89 89 0e 09 c6 89 89 89 | 89 0e 5c 6e c6 89 89 89 |........|..\n....|
|00000e40| 89 89 26 1f 87 22 20 5b | 76 65 63 74 6f 72 20 6e |..&.." [|vector n|
|00000e50| 69 6c 2d 73 63 6f 72 65 | 20 58 73 63 6f 72 65 20 |il-score| Xscore |
|00000e60| 58 58 73 63 6f 72 65 20 | 58 58 58 73 63 6f 72 65 |XXscore |XXXscore|
|00000e70| 20 58 58 58 58 73 63 6f | 72 65 20 30 20 4f 73 63 | XXXXsco|re 0 Osc|
|00000e80| 6f 72 65 20 4f 4f 73 63 | 6f 72 65 20 4f 4f 4f 73 |ore OOsc|ore OOOs|
|00000e90| 63 6f 72 65 20 4f 4f 4f | 4f 73 63 6f 72 65 5d 20 |core OOO|Oscore] |
|00000ea0| 33 32 29 20 22 5c 0a 56 | 65 63 74 6f 72 20 61 73 |32) "\.V|ector as|
|00000eb0| 73 6f 63 69 61 74 69 6e | 67 20 71 74 75 70 6c 65 |sociatin|g qtuple|
|00000ec0| 20 63 6f 6e 74 65 6e 74 | 73 20 74 6f 20 74 68 65 | content|s to the|
|00000ed0| 69 72 20 73 63 6f 72 65 | 2e 22 29 0a 28 64 65 66 |ir score|.").(def|
|00000ee0| 63 6f 6e 73 74 20 67 6f | 6d 6f 6b 75 2d 77 69 6e |const go|moku-win|
|00000ef0| 6e 69 6e 67 2d 74 68 72 | 65 73 68 6f 6c 64 20 4f |ning-thr|eshold O|
|00000f00| 4f 4f 4f 73 63 6f 72 65 | 20 22 5c 0a 54 68 72 65 |OOOscore| "\.Thre|
|00000f10| 73 68 6f 6c 64 20 73 63 | 6f 72 65 20 62 65 79 6f |shold sc|ore beyo|
|00000f20| 6e 64 20 77 68 69 63 68 | 20 61 6e 20 45 6d 61 63 |nd which| an Emac|
|00000f30| 73 20 6d 6f 76 65 20 69 | 73 20 77 69 6e 6e 69 6e |s move i|s winnin|
|00000f40| 67 2e 22 29 0a 28 64 65 | 66 63 6f 6e 73 74 20 67 |g.").(de|fconst g|
|00000f50| 6f 6d 6f 6b 75 2d 6c 6f | 6f 73 69 6e 67 2d 74 68 |omoku-lo|osing-th|
|00000f60| 72 65 73 68 6f 6c 64 20 | 58 58 58 58 73 63 6f 72 |reshold |XXXXscor|
|00000f70| 65 20 22 5c 0a 54 68 72 | 65 73 68 6f 6c 64 20 73 |e "\.Thr|eshold s|
|00000f80| 63 6f 72 65 20 62 65 79 | 6f 6e 64 20 77 68 69 63 |core bey|ond whic|
|00000f90| 68 20 61 20 68 75 6d 61 | 6e 20 6d 6f 76 65 20 69 |h a huma|n move i|
|00000fa0| 73 20 77 69 6e 6e 69 6e | 67 2e 22 29 0a 28 64 65 |s winnin|g.").(de|
|00000fb0| 66 61 6c 69 61 73 20 27 | 67 6f 6d 6f 6b 75 2d 73 |falias '|gomoku-s|
|00000fc0| 74 72 6f 6e 67 65 73 74 | 2d 73 71 75 61 72 65 20 |trongest|-square |
|00000fd0| 23 5b 6e 69 6c 20 22 c0 | 89 c1 c2 89 5c 22 c1 0b |#[nil ".|....\"..|
|00000fe0| 5c 66 5c 22 c5 89 1e 06 | 1e 07 1e 08 1e 09 1e 5c |\f\"....|.......\|
|00000ff0| 6e 1e 0b 0e 09 0e 08 58 | 83 8d 00 0e 5c 66 0e 09 |n......X|....\f..|
|00001000| 48 0e 0b 57 84 84 00 0e | 5c 66 0e 09 48 89 16 06 |H..W....|\f..H...|
|00001010| 0e 0b 56 83 5b 00 0e 0d | 0e 09 48 c0 55 83 51 00 |..V.[...|..H.U.Q.|
|00001020| c2 16 5c 6e 0e 09 16 07 | 0e 06 16 0b 82 84 00 0e |..\n....|........|
|00001030| 5c 66 0e 09 ce 49 88 82 | 84 00 0e 0d 0e 09 48 c0 |\f...I..|......H.|
|00001040| 55 84 6f 00 0e 5c 66 0e | 09 ce 49 88 82 84 00 cf |U.o..\f.|..I.....|
|00001050| 0e 5c 6e 54 89 16 5c 6e | 21 c0 55 83 84 00 0e 09 |.\nT..\n|!.U.....|
|00001060| 16 07 0e 06 16 0b 0e 09 | 54 89 16 09 82 1a 00 0e |........|T.......|
|00001070| 07 2e 06 87 22 20 5b 30 | 20 67 6f 6d 6f 6b 75 2d |...." [0| gomoku-|
|00001080| 78 79 2d 74 6f 2d 69 6e | 64 65 78 20 31 20 67 6f |xy-to-in|dex 1 go|
|00001090| 6d 6f 6b 75 2d 62 6f 61 | 72 64 2d 77 69 64 74 68 |moku-boa|rd-width|
|000010a0| 20 67 6f 6d 6f 6b 75 2d | 62 6f 61 72 64 2d 68 65 | gomoku-|board-he|
|000010b0| 69 67 68 74 20 6e 69 6c | 20 73 63 6f 72 65 20 62 |ight nil| score b|
|000010c0| 65 73 74 2d 73 71 75 61 | 72 65 20 65 6e 64 20 73 |est-squa|re end s|
|000010d0| 71 75 61 72 65 20 63 6f | 75 6e 74 20 73 63 6f 72 |quare co|unt scor|
|000010e0| 65 2d 6d 61 78 20 67 6f | 6d 6f 6b 75 2d 73 63 6f |e-max go|moku-sco|
|000010f0| 72 65 2d 74 61 62 6c 65 | 20 67 6f 6d 6f 6b 75 2d |re-table| gomoku-|
|00001100| 62 6f 61 72 64 20 2d 31 | 20 72 61 6e 64 6f 6d 5d |board -1| random]|
|00001110| 20 37 20 22 5c 0a 43 6f | 6d 70 75 74 65 20 69 6e | 7 "\.Co|mpute in|
|00001120| 64 65 78 20 6f 66 20 66 | 72 65 65 20 73 71 75 61 |dex of f|ree squa|
|00001130| 72 65 20 77 69 74 68 20 | 68 69 67 68 65 73 74 20 |re with |highest |
|00001140| 73 63 6f 72 65 2c 20 6f | 72 20 6e 69 6c 20 69 66 |score, o|r nil if|
|00001150| 20 6e 6f 6e 65 2e 22 5d | 29 0a 28 64 65 66 76 61 | none."]|).(defva|
|00001160| 72 20 67 6f 6d 6f 6b 75 | 2d 73 61 76 65 64 2d 73 |r gomoku|-saved-s|
|00001170| 63 6f 72 65 2d 74 61 62 | 6c 65 20 6e 69 6c 20 22 |core-tab|le nil "|
|00001180| 5c 0a 52 65 63 6f 72 64 | 65 64 20 69 6e 69 74 69 |\.Record|ed initi|
|00001190| 61 6c 20 76 61 6c 75 65 | 20 6f 66 20 70 72 65 76 |al value| of prev|
|000011a0| 69 6f 75 73 20 73 63 6f | 72 65 20 74 61 62 6c 65 |ious sco|re table|
|000011b0| 2e 22 29 0a 28 64 65 66 | 76 61 72 20 67 6f 6d 6f |.").(def|var gomo|
|000011c0| 6b 75 2d 73 61 76 65 64 | 2d 62 6f 61 72 64 2d 77 |ku-saved|-board-w|
|000011d0| 69 64 74 68 20 6e 69 6c | 20 22 5c 0a 52 65 63 6f |idth nil| "\.Reco|
|000011e0| 72 64 65 64 20 76 61 6c | 75 65 20 6f 66 20 70 72 |rded val|ue of pr|
|000011f0| 65 76 69 6f 75 73 20 62 | 6f 61 72 64 20 77 69 64 |evious b|oard wid|
|00001200| 74 68 2e 22 29 0a 28 64 | 65 66 76 61 72 20 67 6f |th.").(d|efvar go|
|00001210| 6d 6f 6b 75 2d 73 61 76 | 65 64 2d 62 6f 61 72 64 |moku-sav|ed-board|
|00001220| 2d 68 65 69 67 68 74 20 | 6e 69 6c 20 22 5c 0a 52 |-height |nil "\.R|
|00001230| 65 63 6f 72 64 65 64 20 | 76 61 6c 75 65 20 6f 66 |ecorded |value of|
|00001240| 20 70 72 65 76 69 6f 75 | 73 20 62 6f 61 72 64 20 | previou|s board |
|00001250| 68 65 69 67 68 74 2e 22 | 29 0a 28 64 65 66 61 6c |height."|).(defal|
|00001260| 69 61 73 20 27 67 6f 6d | 6f 6b 75 2d 69 6e 69 74 |ias 'gom|oku-init|
|00001270| 2d 73 63 6f 72 65 2d 74 | 61 62 6c 65 20 23 5b 6e |-score-t|able #[n|
|00001280| 69 6c 20 22 08 83 17 00 | 09 5c 6e 55 83 17 00 0b |il "....|.\nU....|
|00001290| 5c 66 55 83 17 00 c5 08 | 21 89 16 06 87 c7 0e 08 |\fU.....|!.......|
|000012a0| 0e 09 ca 5f 5c 22 16 06 | cb 89 89 89 89 89 1e 5c |..._\"..|.......\|
|000012b0| 66 1e 0d 1e 0e 1e 0f 1e | 10 1e 11 09 54 d2 a5 16 |f.......|....T...|
|000012c0| 0f 0b 54 d2 a5 16 0e d3 | 0e 0f 5e 16 0d d3 0e 0e |..T.....|..^.....|
|000012d0| 5e 16 5c 66 d4 16 11 d4 | 0e 0d 58 83 78 00 d4 16 |^.\f....|..X.x...|
|000012e0| 10 d4 0e 0e 58 83 6f 00 | d5 0e 11 0e 10 5c 22 88 |....X.o.|.....\".|
|000012f0| 0e 10 54 89 16 10 82 59 | 00 0e 11 54 89 16 11 82 |..T....Y|...T....|
|00001300| 4f 00 0e 11 0e 0f 58 83 | a3 00 d4 16 10 d4 0e 5c |O.....X.|.......\|
|00001310| 66 58 83 9a 00 d5 0e 11 | 0e 10 5c 22 88 0e 10 54 |fX......|..\"...T|
|00001320| 89 16 10 82 84 00 0e 11 | 54 89 16 11 82 7a 00 2e |........|T....z..|
|00001330| 06 c5 0e 06 21 10 09 12 | 0b 89 14 87 22 20 5b 67 |....!...|...." [g|
|00001340| 6f 6d 6f 6b 75 2d 73 61 | 76 65 64 2d 73 63 6f 72 |omoku-sa|ved-scor|
|00001350| 65 2d 74 61 62 6c 65 20 | 67 6f 6d 6f 6b 75 2d 62 |e-table |gomoku-b|
|00001360| 6f 61 72 64 2d 77 69 64 | 74 68 20 67 6f 6d 6f 6b |oard-wid|th gomok|
|00001370| 75 2d 73 61 76 65 64 2d | 62 6f 61 72 64 2d 77 69 |u-saved-|board-wi|
|00001380| 64 74 68 20 67 6f 6d 6f | 6b 75 2d 62 6f 61 72 64 |dth gomo|ku-board|
|00001390| 2d 68 65 69 67 68 74 20 | 67 6f 6d 6f 6b 75 2d 73 |-height |gomoku-s|
|000013a0| 61 76 65 64 2d 62 6f 61 | 72 64 2d 68 65 69 67 68 |aved-boa|rd-heigh|
|000013b0| 74 20 63 6f 70 79 2d 73 | 65 71 75 65 6e 63 65 20 |t copy-s|equence |
|000013c0| 67 6f 6d 6f 6b 75 2d 73 | 63 6f 72 65 2d 74 61 62 |gomoku-s|core-tab|
|000013d0| 6c 65 20 6d 61 6b 65 2d | 76 65 63 74 6f 72 20 67 |le make-|vector g|
|000013e0| 6f 6d 6f 6b 75 2d 76 65 | 63 74 6f 72 2d 6c 65 6e |omoku-ve|ctor-len|
|000013f0| 67 74 68 20 6e 69 6c 2d | 73 63 6f 72 65 20 32 30 |gth nil-|score 20|
|00001400| 20 6e 69 6c 20 6d 61 78 | 6a 32 20 6d 61 78 69 32 | nil max|j2 maxi2|
|00001410| 20 6d 61 78 6a 20 6d 61 | 78 69 20 6a 20 69 20 32 | maxj ma|xi j i 2|
|00001420| 20 34 20 31 20 67 6f 6d | 6f 6b 75 2d 69 6e 69 74 | 4 1 gom|oku-init|
|00001430| 2d 73 71 75 61 72 65 2d | 73 63 6f 72 65 5d 20 37 |-square-|score] 7|
|00001440| 20 22 5c 0a 43 72 65 61 | 74 65 20 74 68 65 20 73 | "\.Crea|te the s|
|00001450| 63 6f 72 65 20 74 61 62 | 6c 65 20 76 65 63 74 6f |core tab|le vecto|
|00001460| 72 20 61 6e 64 20 66 69 | 6c 6c 20 69 74 20 77 69 |r and fi|ll it wi|
|00001470| 74 68 20 69 6e 69 74 69 | 61 6c 20 76 61 6c 75 65 |th initi|al value|
|00001480| 73 2e 22 5d 29 0a 28 64 | 65 66 61 6c 69 61 73 20 |s."]).(d|efalias |
|00001490| 27 67 6f 6d 6f 6b 75 2d | 6e 62 2d 71 74 75 70 6c |'gomoku-|nb-qtupl|
|000014a0| 65 73 20 23 5b 28 69 20 | 6a 29 20 22 c0 09 53 5e |es #[(i |j) "..S^|
|000014b0| c0 5c 6e 09 5a 5e c0 0b | 53 5e c0 5c 66 0b 5a 5e |.\n.Z^..|S^.\f.Z^|
|000014c0| 1d 1e 06 1e 07 89 1e 08 | 0e 07 5c 5c c9 5d ca 5e |........|..\\.].^|
|000014d0| 0e 06 0d 5c 5c c9 5d ca | 5e 0e 08 0e 06 5e 0e 07 |...\\.].|^....^..|
|000014e0| 0d 5e 5c 5c c9 5d ca 5e | 0e 07 0e 06 5e 0e 08 0d |.^\\.].^|....^...|
|000014f0| 5e 5c 5c c9 5d ca 5e cb | 5c 5c 5c 5c 5c 5c 5c 5c |^\\.].^.|\\\\\\\\|
|00001500| 2c 87 22 20 5b 34 20 69 | 20 67 6f 6d 6f 6b 75 2d |,." [4 i| gomoku-|
|00001510| 62 6f 61 72 64 2d 77 69 | 64 74 68 20 6a 20 67 6f |board-wi|dth j go|
|00001520| 6d 6f 6b 75 2d 62 6f 61 | 72 64 2d 68 65 69 67 68 |moku-boa|rd-heigh|
|00001530| 74 20 64 6f 77 6e 20 75 | 70 20 72 69 67 68 74 20 |t down u|p right |
|00001540| 6c 65 66 74 20 33 20 38 | 20 2d 31 32 5d 20 37 20 |left 3 8| -12] 7 |
|00001550| 22 5c 0a 52 65 74 75 72 | 6e 20 74 68 65 20 6e 75 |"\.Retur|n the nu|
|00001560| 6d 62 65 72 20 6f 66 20 | 71 74 75 70 6c 65 73 20 |mber of |qtuples |
|00001570| 63 6f 6e 74 61 69 6e 69 | 6e 67 20 73 71 75 61 72 |containi|ng squar|
|00001580| 65 20 49 2c 4a 2e 22 5d | 29 0a 28 64 65 66 61 6c |e I,J."]|).(defal|
|00001590| 69 61 73 20 27 67 6f 6d | 6f 6b 75 2d 69 6e 69 74 |ias 'gom|oku-init|
|000015a0| 2d 73 71 75 61 72 65 2d | 73 63 6f 72 65 20 23 5b |-square-|score #[|
|000015b0| 28 69 20 6a 29 20 22 08 | 09 5a 54 5c 6e 0b 5a 54 |(i j) ".|.ZT\n.ZT|
|000015c0| c4 09 0b 5c 22 0d c6 48 | 5f 1e 07 1e 08 1e 09 0e |...\"..H|_.......|
|000015d0| 5c 6e cb 09 0b 5c 22 0e | 07 49 88 0e 5c 6e cb 0e |\n...\".|.I..\n..|
|000015e0| 09 0b 5c 22 0e 07 49 88 | 0e 5c 6e cb 09 0e 08 5c |..\"..I.|.\n....\|
|000015f0| 22 0e 07 49 88 0e 5c 6e | cb 0e 09 0e 08 5c 22 0e |"..I..\n|.....\".|
|00001600| 07 49 2b 87 22 20 5b 67 | 6f 6d 6f 6b 75 2d 62 6f |.I+." [g|omoku-bo|
|00001610| 61 72 64 2d 77 69 64 74 | 68 20 69 20 67 6f 6d 6f |ard-widt|h i gomo|
|00001620| 6b 75 2d 62 6f 61 72 64 | 2d 68 65 69 67 68 74 20 |ku-board|-height |
|00001630| 6a 20 67 6f 6d 6f 6b 75 | 2d 6e 62 2d 71 74 75 70 |j gomoku|-nb-qtup|
|00001640| 6c 65 73 20 67 6f 6d 6f | 6b 75 2d 73 63 6f 72 65 |les gomo|ku-score|
|00001650| 2d 74 72 61 6e 73 2d 74 | 61 62 6c 65 20 30 20 73 |-trans-t|able 0 s|
|00001660| 63 20 6a 6a 20 69 69 20 | 67 6f 6d 6f 6b 75 2d 73 |c jj ii |gomoku-s|
|00001670| 63 6f 72 65 2d 74 61 62 | 6c 65 20 67 6f 6d 6f 6b |core-tab|le gomok|
|00001680| 75 2d 78 79 2d 74 6f 2d | 69 6e 64 65 78 5d 20 35 |u-xy-to-|index] 5|
|00001690| 20 22 5c 0a 47 69 76 65 | 20 69 6e 69 74 69 61 6c | "\.Give| initial|
|000016a0| 20 73 63 6f 72 65 20 74 | 6f 20 73 71 75 61 72 65 | score t|o square|
|000016b0| 20 49 2c 4a 20 61 6e 64 | 20 74 6f 20 69 74 73 20 | I,J and| to its |
|000016c0| 6d 69 72 72 6f 72 20 69 | 6d 61 67 65 73 2e 22 5d |mirror i|mages."]|
|000016d0| 29 0a 28 64 65 66 61 6c | 69 61 73 20 27 67 6f 6d |).(defal|ias 'gom|
|000016e0| 6f 6b 75 2d 75 70 64 61 | 74 65 2d 73 63 6f 72 65 |oku-upda|te-score|
|000016f0| 2d 74 61 62 6c 65 20 23 | 5b 28 73 71 75 61 72 65 |-table #|[(square|
|00001700| 20 64 76 61 6c 29 20 22 | c0 09 21 1a c3 09 21 1c | dval) "|..!...!.|
|00001710| c5 c6 5c 6e 5a 5d 1e 07 | c5 c6 5c 66 5a 5d 1e 08 |..\nZ]..|..\fZ]..|
|00001720| c9 0e 5c 6e 5c 6e 5a cb | 5a 5e 1e 5c 66 c9 0e 0d |..\n\nZ.|Z^.\f...|
|00001730| 5c 66 5a cb 5a 5e 1e 0e | cf 0e 07 0e 5c 66 09 c6 |\fZ.Z^..|....\f..|
|00001740| c9 0e 10 26 06 88 cf 0e | 08 0e 0e 09 c9 c6 0e 10 |...&....|........|
|00001750| 26 06 88 cf 0e 07 0e 08 | 5d 0e 5c 66 0e 0e 5e 09 |&.......|].\f..^.|
|00001760| c6 89 0e 10 26 06 88 cf | c6 5c 66 5a c5 5c 6e 0e |....&...|.\fZ.\n.|
|00001770| 5c 6e 5a 5d 5d c9 5c 6e | d1 5a 0e 0d 5c 66 5a cb |\nZ]].\n|.Z..\fZ.|
|00001780| 5a 5e 5e 09 d2 c6 0e 10 | 26 06 2e 06 87 22 20 5b |Z^^.....|&...." [|
|00001790| 67 6f 6d 6f 6b 75 2d 69 | 6e 64 65 78 2d 74 6f 2d |gomoku-i|ndex-to-|
|000017a0| 78 20 73 71 75 61 72 65 | 20 78 20 67 6f 6d 6f 6b |x square| x gomok|
|000017b0| 75 2d 69 6e 64 65 78 2d | 74 6f 2d 79 20 79 20 2d |u-index-|to-y y -|
|000017c0| 34 20 31 20 69 6d 69 6e | 20 6a 6d 69 6e 20 30 20 |4 1 imin| jmin 0 |
|000017d0| 67 6f 6d 6f 6b 75 2d 62 | 6f 61 72 64 2d 77 69 64 |gomoku-b|oard-wid|
|000017e0| 74 68 20 34 20 69 6d 61 | 78 20 67 6f 6d 6f 6b 75 |th 4 ima|x gomoku|
|000017f0| 2d 62 6f 61 72 64 2d 68 | 65 69 67 68 74 20 6a 6d |-board-h|eight jm|
|00001800| 61 78 20 67 6f 6d 6f 6b | 75 2d 75 70 64 61 74 65 |ax gomok|u-update|
|00001810| 2d 73 63 6f 72 65 2d 69 | 6e 2d 64 69 72 65 63 74 |-score-i|n-direct|
|00001820| 69 6f 6e 20 64 76 61 6c | 20 35 20 2d 31 5d 20 37 |ion dval| 5 -1] 7|
|00001830| 20 22 5c 0a 55 70 64 61 | 74 65 20 73 63 6f 72 65 | "\.Upda|te score|
|00001840| 20 74 61 62 6c 65 20 61 | 66 74 65 72 20 53 51 55 | table a|fter SQU|
|00001850| 41 52 45 20 72 65 63 65 | 69 76 65 64 20 61 20 44 |ARE rece|ived a D|
|00001860| 56 41 4c 20 69 6e 63 72 | 65 6d 65 6e 74 2e 22 5d |VAL incr|ement."]|
|00001870| 29 0a 28 64 65 66 61 6c | 69 61 73 20 27 67 6f 6d |).(defal|ias 'gom|
|00001880| 6f 6b 75 2d 75 70 64 61 | 74 65 2d 73 63 6f 72 65 |oku-upda|te-score|
|00001890| 2d 69 6e 2d 64 69 72 65 | 63 74 69 6f 6e 20 23 5b |-in-dire|ction #[|
|000018a0| 28 6c 65 66 74 20 72 69 | 67 68 74 20 73 71 75 61 |(left ri|ght squa|
|000018b0| 72 65 20 64 78 20 64 79 | 20 64 76 61 6c 29 20 22 |re dx dy| dval) "|
|000018c0| 08 09 56 86 be 00 c2 89 | 89 89 89 89 1b 1c 1d 1e |..V.....|........|
|000018d0| 06 1e 07 1e 08 c9 0e 5c | 6e 0e 0b 5c 22 16 08 0e |.......\|n..\"...|
|000018e0| 5c 66 08 0e 08 5f 5c 5c | 16 07 0e 5c 66 09 0e 08 |\f..._\\|...\f...|
|000018f0| 5f 5c 5c 16 06 0e 07 0e | 08 cd 5f 5c 5c 15 0e 07 |_\\.....|.._\\...|
|00001900| 16 5c 66 ce 14 0e 5c 66 | 0d 58 83 57 00 5c 66 0e |.\f...\f|.X.W.\f.|
|00001910| 0f 0e 5c 66 48 5c 5c 14 | 0e 5c 66 0e 08 5c 5c 89 |..\fH\\.|.\f..\\.|
|00001920| 16 5c 66 82 3f 00 0e 07 | 0e 06 58 85 bc 00 0e 10 |.\f.?...|..X.....|
|00001930| 5c 66 48 0e 10 5c 66 0e | 11 5a 48 5a 89 13 ce 55 |\fH..\f.|.ZHZ...U|
|00001940| 84 9e 00 0e 07 89 16 5c | 66 0d 58 83 9e 00 0e 0f |.......\|f.X.....|
|00001950| 0e 5c 66 48 ce 55 83 93 | 00 0e 12 0e 5c 66 0e 12 |.\fH.U..|....\f..|
|00001960| 0e 5c 66 48 0b 5c 5c 49 | 88 0e 5c 66 0e 08 5c 5c |.\fH.\\I|..\f..\\|
|00001970| 89 16 5c 66 82 77 00 0d | 0e 08 5c 5c 15 5c 66 0e |..\f.w..|..\\.\f.|
|00001980| 0f 0e 07 48 5b 0e 0f 0d | 48 5c 5c 5c 5c 14 0e 07 |...H[...|H\\\\...|
|00001990| 0e 08 5c 5c 89 16 07 82 | 59 00 2e 06 87 22 20 5b |..\\....|Y...." [|
|000019a0| 6c 65 66 74 20 72 69 67 | 68 74 20 6e 69 6c 20 64 |left rig|ht nil d|
|000019b0| 65 6c 74 61 20 63 6f 75 | 6e 74 20 73 71 75 61 72 |elta cou|nt squar|
|000019c0| 65 32 20 73 71 75 61 72 | 65 31 20 73 71 75 61 72 |e2 squar|e1 squar|
|000019d0| 65 30 20 64 65 70 6c 20 | 67 6f 6d 6f 6b 75 2d 78 |e0 depl |gomoku-x|
|000019e0| 79 2d 74 6f 2d 69 6e 64 | 65 78 20 64 78 20 64 79 |y-to-ind|ex dx dy|
|000019f0| 20 73 71 75 61 72 65 20 | 34 20 30 20 67 6f 6d 6f | square |4 0 gomo|
|00001a00| 6b 75 2d 62 6f 61 72 64 | 20 67 6f 6d 6f 6b 75 2d |ku-board| gomoku-|
|00001a10| 73 63 6f 72 65 2d 74 72 | 61 6e 73 2d 74 61 62 6c |score-tr|ans-tabl|
|00001a20| 65 20 64 76 61 6c 20 67 | 6f 6d 6f 6b 75 2d 73 63 |e dval g|omoku-sc|
|00001a30| 6f 72 65 2d 74 61 62 6c | 65 5d 20 37 20 22 5c 0a |ore-tabl|e] 7 "\.|
|00001a40| 55 70 64 61 74 65 20 73 | 63 6f 72 65 73 20 66 6f |Update s|cores fo|
|00001a50| 72 20 61 6c 6c 20 73 71 | 75 61 72 65 73 20 69 6e |r all sq|uares in|
|00001a60| 20 74 68 65 20 71 74 75 | 70 6c 65 73 20 73 74 61 | the qtu|ples sta|
|00001a70| 72 74 69 6e 67 20 62 65 | 74 77 65 65 6e 20 74 68 |rting be|tween th|
|00001a80| 65 20 4c 45 46 54 74 68 | 0a 73 71 75 61 72 65 20 |e LEFTth|.square |
|00001a90| 61 6e 64 20 74 68 65 20 | 52 49 47 48 54 74 68 20 |and the |RIGHTth |
|00001aa0| 61 66 74 65 72 20 53 51 | 55 41 52 45 2c 20 61 6c |after SQ|UARE, al|
|00001ab0| 6f 6e 67 20 74 68 65 20 | 44 58 2c 20 44 59 20 64 |ong the |DX, DY d|
|00001ac0| 69 72 65 63 74 69 6f 6e | 2c 20 63 6f 6e 73 69 64 |irection|, consid|
|00001ad0| 65 72 69 6e 67 0a 74 68 | 61 74 20 44 56 41 4c 20 |ering.th|at DVAL |
|00001ae0| 68 61 73 20 62 65 65 6e | 20 61 64 64 65 64 20 6f |has been| added o|
|00001af0| 6e 20 53 51 55 41 52 45 | 2e 22 5d 29 0a 28 64 65 |n SQUARE|."]).(de|
|00001b00| 66 76 61 72 20 67 6f 6d | 6f 6b 75 2d 67 61 6d 65 |fvar gom|oku-game|
|00001b10| 2d 69 6e 2d 70 72 6f 67 | 72 65 73 73 20 6e 69 6c |-in-prog|ress nil|
|00001b20| 20 22 5c 0a 4e 6f 6e 2d | 6e 69 6c 20 69 66 20 61 | "\.Non-|nil if a|
|00001b30| 20 67 61 6d 65 20 69 73 | 20 69 6e 20 70 72 6f 67 | game is| in prog|
|00001b40| 72 65 73 73 2e 22 29 0a | 28 64 65 66 76 61 72 20 |ress.").|(defvar |
|00001b50| 67 6f 6d 6f 6b 75 2d 67 | 61 6d 65 2d 68 69 73 74 |gomoku-g|ame-hist|
|00001b60| 6f 72 79 20 6e 69 6c 20 | 22 5c 0a 41 20 72 65 63 |ory nil |"\.A rec|
|00001b70| 6f 72 64 20 6f 66 20 61 | 6c 6c 20 6d 6f 76 65 73 |ord of a|ll moves|
|00001b80| 20 74 68 61 74 20 68 61 | 76 65 20 62 65 65 6e 20 | that ha|ve been |
|00001b90| 70 6c 61 79 65 64 20 64 | 75 72 69 6e 67 20 63 75 |played d|uring cu|
|00001ba0| 72 72 65 6e 74 20 67 61 | 6d 65 2e 22 29 0a 28 64 |rrent ga|me.").(d|
|00001bb0| 65 66 76 61 72 20 67 6f | 6d 6f 6b 75 2d 6e 75 6d |efvar go|moku-num|
|00001bc0| 62 65 72 2d 6f 66 2d 6d | 6f 76 65 73 20 6e 69 6c |ber-of-m|oves nil|
|00001bd0| 20 22 5c 0a 4e 75 6d 62 | 65 72 20 6f 66 20 6d 6f | "\.Numb|er of mo|
|00001be0| 76 65 73 20 61 6c 72 65 | 61 64 79 20 70 6c 61 79 |ves alre|ady play|
|00001bf0| 65 64 20 69 6e 20 63 75 | 72 72 65 6e 74 20 67 61 |ed in cu|rrent ga|
|00001c00| 6d 65 2e 22 29 0a 28 64 | 65 66 76 61 72 20 67 6f |me.").(d|efvar go|
|00001c10| 6d 6f 6b 75 2d 6e 75 6d | 62 65 72 2d 6f 66 2d 68 |moku-num|ber-of-h|
|00001c20| 75 6d 61 6e 2d 6d 6f 76 | 65 73 20 6e 69 6c 20 22 |uman-mov|es nil "|
|00001c30| 5c 0a 4e 75 6d 62 65 72 | 20 6f 66 20 6d 6f 76 65 |\.Number| of move|
|00001c40| 73 20 61 6c 72 65 61 64 | 79 20 70 6c 61 79 65 64 |s alread|y played|
|00001c50| 20 62 79 20 68 75 6d 61 | 6e 20 69 6e 20 63 75 72 | by huma|n in cur|
|00001c60| 72 65 6e 74 20 67 61 6d | 65 2e 22 29 0a 28 64 65 |rent gam|e.").(de|
|00001c70| 66 76 61 72 20 67 6f 6d | 6f 6b 75 2d 65 6d 61 63 |fvar gom|oku-emac|
|00001c80| 73 2d 70 6c 61 79 65 64 | 2d 66 69 72 73 74 20 6e |s-played|-first n|
|00001c90| 69 6c 20 22 5c 0a 4e 6f | 6e 2d 6e 69 6c 20 69 66 |il "\.No|n-nil if|
|00001ca0| 20 45 6d 61 63 73 20 70 | 6c 61 79 65 64 20 66 69 | Emacs p|layed fi|
|00001cb0| 72 73 74 2e 22 29 0a 28 | 64 65 66 76 61 72 20 67 |rst.").(|defvar g|
|00001cc0| 6f 6d 6f 6b 75 2d 68 75 | 6d 61 6e 2d 74 6f 6f 6b |omoku-hu|man-took|
|00001cd0| 2d 62 61 63 6b 20 6e 69 | 6c 20 22 5c 0a 4e 6f 6e |-back ni|l "\.Non|
|00001ce0| 2d 6e 69 6c 20 69 66 20 | 48 75 6d 61 6e 20 74 6f |-nil if |Human to|
|00001cf0| 6f 6b 20 62 61 63 6b 20 | 61 20 6d 6f 76 65 20 64 |ok back |a move d|
|00001d00| 75 72 69 6e 67 20 74 68 | 65 20 67 61 6d 65 2e 22 |uring th|e game."|
|00001d10| 29 0a 28 64 65 66 76 61 | 72 20 67 6f 6d 6f 6b 75 |).(defva|r gomoku|
|00001d20| 2d 68 75 6d 61 6e 2d 72 | 65 66 75 73 65 64 2d 64 |-human-r|efused-d|
|00001d30| 72 61 77 20 6e 69 6c 20 | 22 5c 0a 4e 6f 6e 2d 6e |raw nil |"\.Non-n|
|00001d40| 69 6c 20 69 66 20 48 75 | 6d 61 6e 20 72 65 66 75 |il if Hu|man refu|
|00001d50| 73 65 64 20 45 6d 61 63 | 73 20 6f 66 66 65 72 20 |sed Emac|s offer |
|00001d60| 6f 66 20 61 20 64 72 61 | 77 2e 22 29 0a 28 64 65 |of a dra|w.").(de|
|00001d70| 66 76 61 72 20 67 6f 6d | 6f 6b 75 2d 65 6d 61 63 |fvar gom|oku-emac|
|00001d80| 73 2d 69 73 2d 63 6f 6d | 70 75 74 69 6e 67 20 6e |s-is-com|puting n|
|00001d90| 69 6c 20 22 5c 0a 4e 6f | 6e 2d 6e 69 6c 20 69 66 |il "\.No|n-nil if|
|00001da0| 20 45 6d 61 63 73 20 69 | 73 20 69 6e 20 74 68 65 | Emacs i|s in the|
|00001db0| 20 6d 69 64 64 6c 65 20 | 6f 66 20 61 20 63 6f 6d | middle |of a com|
|00001dc0| 70 75 74 61 74 69 6f 6e | 2e 22 29 0a 28 64 65 66 |putation|.").(def|
|00001dd0| 61 6c 69 61 73 20 27 67 | 6f 6d 6f 6b 75 2d 73 74 |alias 'g|omoku-st|
|00001de0| 61 72 74 2d 67 61 6d 65 | 20 23 5b 28 6e 20 6d 29 |art-game| #[(n m)|
|00001df0| 20 22 c0 11 c0 12 0b 14 | 0d 16 06 0d c7 5c 5c 0b | "......|.....\\.|
|00001e00| 54 5f 54 16 08 0b 0d c9 | 5f 5f ca a5 16 0b cc 16 |T_T.....|__......|
|00001e10| 0d ce 16 0f ce 16 10 cc | 16 11 cc 16 12 cc 16 13 |........|........|
|00001e20| d4 0b 0d 5c 22 88 d5 20 | 88 d6 20 88 cc 89 11 87 |...\".. |.. .....|
|00001e30| 22 20 5b 74 20 67 6f 6d | 6f 6b 75 2d 65 6d 61 63 |" [t gom|oku-emac|
|00001e40| 73 2d 69 73 2d 63 6f 6d | 70 75 74 69 6e 67 20 67 |s-is-com|puting g|
|00001e50| 6f 6d 6f 6b 75 2d 67 61 | 6d 65 2d 69 6e 2d 70 72 |omoku-ga|me-in-pr|
|00001e60| 6f 67 72 65 73 73 20 6e | 20 67 6f 6d 6f 6b 75 2d |ogress n| gomoku-|
|00001e70| 62 6f 61 72 64 2d 77 69 | 64 74 68 20 6d 20 67 6f |board-wi|dth m go|
|00001e80| 6d 6f 6b 75 2d 62 6f 61 | 72 64 2d 68 65 69 67 68 |moku-boa|rd-heigh|
|00001e90| 74 20 32 20 67 6f 6d 6f | 6b 75 2d 76 65 63 74 6f |t 2 gomo|ku-vecto|
|00001ea0| 72 2d 6c 65 6e 67 74 68 | 20 37 20 31 30 20 67 6f |r-length| 7 10 go|
|00001eb0| 6d 6f 6b 75 2d 64 72 61 | 77 2d 6c 69 6d 69 74 20 |moku-dra|w-limit |
|00001ec0| 6e 69 6c 20 67 6f 6d 6f | 6b 75 2d 67 61 6d 65 2d |nil gomo|ku-game-|
|00001ed0| 68 69 73 74 6f 72 79 20 | 30 20 67 6f 6d 6f 6b 75 |history |0 gomoku|
|00001ee0| 2d 6e 75 6d 62 65 72 2d | 6f 66 2d 6d 6f 76 65 73 |-number-|of-moves|
|00001ef0| 20 67 6f 6d 6f 6b 75 2d | 6e 75 6d 62 65 72 2d 6f | gomoku-|number-o|
|00001f00| 66 2d 68 75 6d 61 6e 2d | 6d 6f 76 65 73 20 67 6f |f-human-|moves go|
|00001f10| 6d 6f 6b 75 2d 65 6d 61 | 63 73 2d 70 6c 61 79 65 |moku-ema|cs-playe|
|00001f20| 64 2d 66 69 72 73 74 20 | 67 6f 6d 6f 6b 75 2d 68 |d-first |gomoku-h|
|00001f30| 75 6d 61 6e 2d 74 6f 6f | 6b 2d 62 61 63 6b 20 67 |uman-too|k-back g|
|00001f40| 6f 6d 6f 6b 75 2d 68 75 | 6d 61 6e 2d 72 65 66 75 |omoku-hu|man-refu|
|00001f50| 73 65 64 2d 64 72 61 77 | 20 67 6f 6d 6f 6b 75 2d |sed-draw| gomoku-|
|00001f60| 69 6e 69 74 2d 64 69 73 | 70 6c 61 79 20 67 6f 6d |init-dis|play gom|
|00001f70| 6f 6b 75 2d 69 6e 69 74 | 2d 73 63 6f 72 65 2d 74 |oku-init|-score-t|
|00001f80| 61 62 6c 65 20 67 6f 6d | 6f 6b 75 2d 69 6e 69 74 |able gom|oku-init|
|00001f90| 2d 62 6f 61 72 64 5d 20 | 33 20 22 5c 0a 49 6e 69 |-board] |3 "\.Ini|
|00001fa0| 74 69 61 6c 69 7a 65 20 | 61 20 6e 65 77 20 67 61 |tialize |a new ga|
|00001fb0| 6d 65 20 6f 6e 20 61 6e | 20 4e 20 62 79 20 4d 20 |me on an| N by M |
|00001fc0| 62 6f 61 72 64 2e 22 5d | 29 0a 28 64 65 66 61 6c |board."]|).(defal|
|00001fd0| 69 61 73 20 27 67 6f 6d | 6f 6b 75 2d 70 6c 61 79 |ias 'gom|oku-play|
|00001fe0| 2d 6d 6f 76 65 20 23 5b | 28 73 71 75 61 72 65 20 |-move #[|(square |
|00001ff0| 76 61 6c 20 26 6f 70 74 | 69 6f 6e 61 6c 20 64 6f |val &opt|ional do|
|00002000| 6e 74 2d 75 70 64 61 74 | 65 2d 73 63 6f 72 65 29 |nt-updat|e-score)|
|00002010| 20 22 c0 11 5c 6e c3 55 | 83 0e 00 5c 66 54 14 82 | "..\n.U|...\fT..|
|00002020| 17 00 0d c6 55 83 17 00 | c0 16 07 0e 08 0e 09 0e |....U...|........|
|00002030| 08 48 42 0e 5c 6e 42 16 | 5c 6e 0d 54 15 cb 0e 08 |.HB.\nB.|\n.T....|
|00002040| 5c 6e 5c 22 88 0e 5c 66 | 0e 08 5c 6e 49 88 0e 0d |\n\"..\f|..\nI...|
|00002050| 84 46 00 ce 0e 08 5c 6e | 5c 22 88 0e 09 0e 08 cf |.F....\n|\"......|
|00002060| 49 88 d0 89 11 87 22 20 | 5b 74 20 67 6f 6d 6f 6b |I....." |[t gomok|
|00002070| 75 2d 65 6d 61 63 73 2d | 69 73 2d 63 6f 6d 70 75 |u-emacs-|is-compu|
|00002080| 74 69 6e 67 20 76 61 6c | 20 31 20 67 6f 6d 6f 6b |ting val| 1 gomok|
|00002090| 75 2d 6e 75 6d 62 65 72 | 2d 6f 66 2d 68 75 6d 61 |u-number|-of-huma|
|000020a0| 6e 2d 6d 6f 76 65 73 20 | 67 6f 6d 6f 6b 75 2d 6e |n-moves |gomoku-n|
|000020b0| 75 6d 62 65 72 2d 6f 66 | 2d 6d 6f 76 65 73 20 30 |umber-of|-moves 0|
|000020c0| 20 67 6f 6d 6f 6b 75 2d | 65 6d 61 63 73 2d 70 6c | gomoku-|emacs-pl|
|000020d0| 61 79 65 64 2d 66 69 72 | 73 74 20 73 71 75 61 72 |ayed-fir|st squar|
|000020e0| 65 20 67 6f 6d 6f 6b 75 | 2d 73 63 6f 72 65 2d 74 |e gomoku|-score-t|
|000020f0| 61 62 6c 65 20 67 6f 6d | 6f 6b 75 2d 67 61 6d 65 |able gom|oku-game|
|00002100| 2d 68 69 73 74 6f 72 79 | 20 67 6f 6d 6f 6b 75 2d |-history| gomoku-|
|00002110| 70 6c 6f 74 2d 73 71 75 | 61 72 65 20 67 6f 6d 6f |plot-squ|are gomo|
|00002120| 6b 75 2d 62 6f 61 72 64 | 20 64 6f 6e 74 2d 75 70 |ku-board| dont-up|
|00002130| 64 61 74 65 2d 73 63 6f | 72 65 20 67 6f 6d 6f 6b |date-sco|re gomok|
|00002140| 75 2d 75 70 64 61 74 65 | 2d 73 63 6f 72 65 2d 74 |u-update|-score-t|
|00002150| 61 62 6c 65 20 2d 31 20 | 6e 69 6c 5d 20 33 20 22 |able -1 |nil] 3 "|
|00002160| 5c 0a 47 6f 20 74 6f 20 | 53 51 55 41 52 45 2c 20 |\.Go to |SQUARE, |
|00002170| 70 6c 61 79 20 56 41 4c | 20 61 6e 64 20 75 70 64 |play VAL| and upd|
|00002180| 61 74 65 20 65 76 65 72 | 79 74 68 69 6e 67 2e 22 |ate ever|ything."|
|00002190| 5d 29 0a 28 64 65 66 61 | 6c 69 61 73 20 27 67 6f |]).(defa|lias 'go|
|000021a0| 6d 6f 6b 75 2d 74 61 6b | 65 2d 62 61 63 6b 20 23 |moku-tak|e-back #|
|000021b0| 5b 6e 69 6c 20 22 c0 11 | 5c 6e 40 89 1b 40 1c 0d |[nil "..|\n@..@..|
|000021c0| 5c 66 48 89 1e 06 c7 55 | 83 18 00 0e 08 53 16 08 |\fH....U|.....S..|
|000021d0| 5c 6e 41 12 0e 09 53 16 | 09 ca 5c 66 cb 5c 22 88 |\nA...S.|..\f.\".|
|000021e0| 0d 5c 66 cb 49 88 cc 5c | 66 0e 06 5b 5c 22 88 0e |.\f.I..\|f..[\"..|
|000021f0| 0d 5c 66 0b 41 49 88 2b | ce 89 11 87 22 20 5b 74 |.\f.AI.+|...." [t|
|00002200| 20 67 6f 6d 6f 6b 75 2d | 65 6d 61 63 73 2d 69 73 | gomoku-|emacs-is|
|00002210| 2d 63 6f 6d 70 75 74 69 | 6e 67 20 67 6f 6d 6f 6b |-computi|ng gomok|
|00002220| 75 2d 67 61 6d 65 2d 68 | 69 73 74 6f 72 79 20 6c |u-game-h|istory l|
|00002230| 61 73 74 2d 6d 6f 76 65 | 20 73 71 75 61 72 65 20 |ast-move| square |
|00002240| 67 6f 6d 6f 6b 75 2d 62 | 6f 61 72 64 20 6f 6c 64 |gomoku-b|oard old|
|00002250| 76 61 6c 20 31 20 67 6f | 6d 6f 6b 75 2d 6e 75 6d |val 1 go|moku-num|
|00002260| 62 65 72 2d 6f 66 2d 68 | 75 6d 61 6e 2d 6d 6f 76 |ber-of-h|uman-mov|
|00002270| 65 73 20 67 6f 6d 6f 6b | 75 2d 6e 75 6d 62 65 72 |es gomok|u-number|
|00002280| 2d 6f 66 2d 6d 6f 76 65 | 73 20 67 6f 6d 6f 6b 75 |-of-move|s gomoku|
|00002290| 2d 70 6c 6f 74 2d 73 71 | 75 61 72 65 20 30 20 67 |-plot-sq|uare 0 g|
|000022a0| 6f 6d 6f 6b 75 2d 75 70 | 64 61 74 65 2d 73 63 6f |omoku-up|date-sco|
|000022b0| 72 65 2d 74 61 62 6c 65 | 20 67 6f 6d 6f 6b 75 2d |re-table| gomoku-|
|000022c0| 73 63 6f 72 65 2d 74 61 | 62 6c 65 20 6e 69 6c 5d |score-ta|ble nil]|
|000022d0| 20 34 20 22 5c 0a 54 61 | 6b 65 20 62 61 63 6b 20 | 4 "\.Ta|ke back |
|000022e0| 6c 61 73 74 20 6d 6f 76 | 65 20 61 6e 64 20 75 70 |last mov|e and up|
|000022f0| 64 61 74 65 20 65 76 65 | 72 79 74 68 69 6e 67 2e |date eve|rything.|
|00002300| 22 5d 29 0a 28 64 65 66 | 76 61 72 20 67 6f 6d 6f |"]).(def|var gomo|
|00002310| 6b 75 2d 6e 75 6d 62 65 | 72 2d 6f 66 2d 65 6d 61 |ku-numbe|r-of-ema|
|00002320| 63 73 2d 77 69 6e 73 20 | 30 20 22 5c 0a 4e 75 6d |cs-wins |0 "\.Num|
|00002330| 62 65 72 20 6f 66 20 67 | 61 6d 65 73 20 45 6d 61 |ber of g|ames Ema|
|00002340| 63 73 20 77 6f 6e 20 69 | 6e 20 74 68 69 73 20 73 |cs won i|n this s|
|00002350| 65 73 73 69 6f 6e 2e 22 | 29 0a 28 64 65 66 76 61 |ession."|).(defva|
|00002360| 72 20 67 6f 6d 6f 6b 75 | 2d 6e 75 6d 62 65 72 2d |r gomoku|-number-|
|00002370| 6f 66 2d 68 75 6d 61 6e | 2d 77 69 6e 73 20 30 20 |of-human|-wins 0 |
|00002380| 22 5c 0a 4e 75 6d 62 65 | 72 20 6f 66 20 67 61 6d |"\.Numbe|r of gam|
|00002390| 65 73 20 79 6f 75 20 77 | 6f 6e 20 69 6e 20 74 68 |es you w|on in th|
|000023a0| 69 73 20 73 65 73 73 69 | 6f 6e 2e 22 29 0a 28 64 |is sessi|on.").(d|
|000023b0| 65 66 76 61 72 20 67 6f | 6d 6f 6b 75 2d 6e 75 6d |efvar go|moku-num|
|000023c0| 62 65 72 2d 6f 66 2d 64 | 72 61 77 73 20 30 20 22 |ber-of-d|raws 0 "|
|000023d0| 5c 0a 4e 75 6d 62 65 72 | 20 6f 66 20 67 61 6d 65 |\.Number| of game|
|000023e0| 73 20 61 6c 72 65 61 64 | 79 20 64 72 61 77 6e 20 |s alread|y drawn |
|000023f0| 69 6e 20 74 68 69 73 20 | 73 65 73 73 69 6f 6e 2e |in this |session.|
|00002400| 22 29 0a 28 64 65 66 61 | 6c 69 61 73 20 27 67 6f |").(defa|lias 'go|
|00002410| 6d 6f 6b 75 2d 74 65 72 | 6d 69 6e 61 74 65 2d 67 |moku-ter|minate-g|
|00002420| 61 6d 65 20 23 5b 28 72 | 65 73 75 6c 74 29 20 22 |ame #[(r|esult) "|
|00002430| c0 19 5c 6e c3 3d 83 4d | 00 5c 66 54 14 0d c6 57 |..\n.=.M|.\fT...W|
|00002440| 83 15 00 c7 82 49 00 0e | 08 83 1e 00 c9 82 49 00 |.....I..|......I.|
|00002450| 0e 5c 6e 83 27 00 cb 82 | 49 00 0e 5c 66 84 30 00 |.\n.'...|I..\f.0.|
|00002460| cd 82 49 00 0e 0e cf 55 | 83 48 00 0e 10 cf 55 83 |..I....U|.H....U.|
|00002470| 48 00 5c 66 d1 56 83 48 | 00 d2 82 49 00 d3 11 82 |H.\f.V.H|...I....|
|00002480| c9 00 5c 6e d4 3d 83 6f | 00 0e 0e 54 16 0e 0e 5c |..\n.=.o|...T...\|
|00002490| 6e 83 61 00 d5 82 6b 00 | 0e 5c 66 83 6a 00 d6 82 |n.a...k.|.\f.j...|
|000024a0| 6b 00 d7 11 82 c9 00 5c | 6e d8 3d 83 7d 00 5c 66 |k......\|n.=.}.\f|
|000024b0| 54 14 d9 11 82 c9 00 5c | 6e da 3d 83 9f 00 0e 10 |T......\|n.=.....|
|000024c0| 54 16 10 0e 5c 6e 83 91 | 00 db 82 9b 00 0e 5c 66 |T...\n..|......\f|
|000024d0| 83 9a 00 dc 82 9b 00 dd | 11 82 c9 00 5c 6e de 3d |........|....\n.=|
|000024e0| 83 c1 00 0e 10 54 16 10 | 0e 5c 6e 83 b3 00 df 82 |.....T..|.\n.....|
|000024f0| bd 00 0e 5c 66 83 bc 00 | e0 82 bd 00 e1 11 82 c9 |...\f...|........|
|00002500| 00 5c 6e e2 3d 83 c9 00 | e3 11 e4 20 88 09 83 d4 |.\n.=...|... ....|
|00002510| 00 c1 09 21 88 e5 20 88 | c0 89 16 26 29 87 22 20 |...!.. .|...&)." |
|00002520| 5b 6e 69 6c 20 6d 65 73 | 73 61 67 65 20 72 65 73 |[nil mes|sage res|
|00002530| 75 6c 74 20 65 6d 61 63 | 73 2d 77 6f 6e 20 67 6f |ult emac|s-won go|
|00002540| 6d 6f 6b 75 2d 6e 75 6d | 62 65 72 2d 6f 66 2d 65 |moku-num|ber-of-e|
|00002550| 6d 61 63 73 2d 77 69 6e | 73 20 67 6f 6d 6f 6b 75 |macs-win|s gomoku|
|00002560| 2d 6e 75 6d 62 65 72 2d | 6f 66 2d 6d 6f 76 65 73 |-number-|of-moves|
|00002570| 20 32 30 20 22 54 68 69 | 73 20 77 61 73 20 61 20 | 20 "Thi|s was a |
|00002580| 52 45 41 4c 4c 59 20 51 | 55 49 43 4b 20 77 69 6e |REALLY Q|UICK win|
|00002590| 2e 22 20 67 6f 6d 6f 6b | 75 2d 68 75 6d 61 6e 2d |." gomok|u-human-|
|000025a0| 72 65 66 75 73 65 64 2d | 64 72 61 77 20 22 49 20 |refused-|draw "I |
|000025b0| 77 6f 6e 2e 2e 2e 20 54 | 6f 6f 20 62 61 64 20 79 |won... T|oo bad y|
|000025c0| 6f 75 20 72 65 66 75 73 | 65 64 20 6d 79 20 6f 66 |ou refus|ed my of|
|000025d0| 66 65 72 20 6f 66 20 61 | 20 64 72 61 77 20 21 22 |fer of a| draw !"|
|000025e0| 20 67 6f 6d 6f 6b 75 2d | 68 75 6d 61 6e 2d 74 6f | gomoku-|human-to|
|000025f0| 6f 6b 2d 62 61 63 6b 20 | 22 49 20 77 6f 6e 2e 2e |ok-back |"I won..|
|00002600| 2e 20 54 61 6b 69 6e 67 | 20 6d 6f 76 65 73 20 62 |. Taking| moves b|
|00002610| 61 63 6b 20 77 69 6c 6c | 20 6e 6f 74 20 68 65 6c |ack will| not hel|
|00002620| 70 20 79 6f 75 20 21 22 | 20 67 6f 6d 6f 6b 75 2d |p you !"| gomoku-|
|00002630| 65 6d 61 63 73 2d 70 6c | 61 79 65 64 2d 66 69 72 |emacs-pl|ayed-fir|
|00002640| 73 74 20 22 49 20 77 6f | 6e 2e 2e 2e 20 50 6c 61 |st "I wo|n... Pla|
|00002650| 79 69 6e 67 20 66 69 72 | 73 74 20 64 69 64 20 6e |ying fir|st did n|
|00002660| 6f 74 20 68 65 6c 70 20 | 79 6f 75 20 6d 75 63 68 |ot help |you much|
|00002670| 20 21 22 20 67 6f 6d 6f | 6b 75 2d 6e 75 6d 62 65 | !" gomo|ku-numbe|
|00002680| 72 2d 6f 66 2d 68 75 6d | 61 6e 2d 77 69 6e 73 20 |r-of-hum|an-wins |
|00002690| 30 20 67 6f 6d 6f 6b 75 | 2d 6e 75 6d 62 65 72 2d |0 gomoku|-number-|
|000026a0| 6f 66 2d 64 72 61 77 73 | 20 31 20 22 49 27 6d 20 |of-draws| 1 "I'm |
|000026b0| 62 65 63 6f 6d 69 6e 67 | 20 74 69 72 65 64 20 6f |becoming| tired o|
|000026c0| 66 20 77 69 6e 6e 69 6e | 67 2e 2e 2e 22 20 22 49 |f winnin|g..." "I|
|000026d0| 20 77 6f 6e 2e 22 20 68 | 75 6d 61 6e 2d 77 6f 6e | won." h|uman-won|
|000026e0| 20 22 4f 4b 2c 20 79 6f | 75 20 77 6f 6e 20 74 68 | "OK, yo|u won th|
|000026f0| 69 73 20 6f 6e 65 2e 20 | 20 49 2c 20 66 6f 72 20 |is one. | I, for |
|00002700| 6f 6e 65 2c 20 6e 65 76 | 65 72 20 74 61 6b 65 20 |one, nev|er take |
|00002710| 6d 79 20 6d 6f 76 65 73 | 20 62 61 63 6b 2e 2e 2e |my moves| back...|
|00002720| 22 20 22 4f 4b 2c 20 79 | 6f 75 20 77 6f 6e 20 74 |" "OK, y|ou won t|
|00002730| 68 69 73 20 6f 6e 65 2e | 2e 2e 20 73 6f 20 77 68 |his one.|.. so wh|
|00002740| 61 74 20 3f 22 20 22 4f | 4b 2c 20 79 6f 75 20 77 |at ?" "O|K, you w|
|00002750| 6f 6e 20 74 68 69 73 20 | 6f 6e 65 2e 20 20 4e 6f |on this |one. No|
|00002760| 77 2c 20 6c 65 74 20 6d | 65 20 70 6c 61 79 20 66 |w, let m|e play f|
|00002770| 69 72 73 74 20 6a 75 73 | 74 20 6f 6e 63 65 2e 22 |irst jus|t once."|
|00002780| 20 68 75 6d 61 6e 2d 72 | 65 73 69 67 6e 65 64 20 | human-r|esigned |
|00002790| 22 53 6f 20 79 6f 75 20 | 72 65 73 69 67 6e 2e 20 |"So you |resign. |
|000027a0| 20 54 68 61 74 27 73 20 | 6a 75 73 74 20 6f 6e 65 | That's |just one|
|000027b0| 20 6d 6f 72 65 20 77 69 | 6e 20 66 6f 72 20 6d 65 | more wi|n for me|
|000027c0| 2e 22 20 6e 6f 62 6f 64 | 79 2d 77 6f 6e 20 22 54 |." nobod|y-won "T|
|000027d0| 68 69 73 20 69 73 20 61 | 20 64 72 61 77 2e 20 20 |his is a| draw. |
|000027e0| 49 2c 20 66 6f 72 20 6f | 6e 65 2c 20 6e 65 76 65 |I, for o|ne, neve|
|000027f0| 72 20 74 61 6b 65 20 6d | 79 20 6d 6f 76 65 73 20 |r take m|y moves |
|00002800| 62 61 63 6b 2e 2e 2e 22 | 20 22 54 68 69 73 20 69 |back..."| "This i|
|00002810| 73 20 61 20 64 72 61 77 | 2e 20 20 4a 75 73 74 20 |s a draw|. Just |
|00002820| 63 68 61 6e 63 65 2c 20 | 49 20 67 75 65 73 73 2e |chance, |I guess.|
|00002830| 22 20 22 54 68 69 73 20 | 69 73 20 61 20 64 72 61 |" "This |is a dra|
|00002840| 77 2e 20 20 4e 6f 77 2c | 20 6c 65 74 20 6d 65 20 |w. Now,| let me |
|00002850| 70 6c 61 79 20 66 69 72 | 73 74 20 6a 75 73 74 20 |play fir|st just |
|00002860| 6f 6e 63 65 2e 22 20 64 | 72 61 77 2d 61 67 72 65 |once." d|raw-agre|
|00002870| 65 64 20 22 44 72 61 77 | 20 61 67 72 65 65 64 2e |ed "Draw| agreed.|
|00002880| 20 20 49 2c 20 66 6f 72 | 20 6f 6e 65 2c 20 6e 65 | I, for| one, ne|
|00002890| 76 65 72 20 74 61 6b 65 | 20 6d 79 20 6d 6f 76 65 |ver take| my move|
|000028a0| 73 20 62 61 63 6b 2e 2e | 2e 22 20 22 44 72 61 77 |s back..|." "Draw|
|000028b0| 20 61 67 72 65 65 64 2e | 20 20 59 6f 75 20 77 65 | agreed.| You we|
|000028c0| 72 65 20 6c 75 63 6b 79 | 2e 22 20 22 44 72 61 77 |re lucky|." "Draw|
|000028d0| 20 61 67 72 65 65 64 2e | 20 20 4e 6f 77 2c 20 6c | agreed.| Now, l|
|000028e0| 65 74 20 6d 65 20 70 6c | 61 79 20 66 69 72 73 74 |et me pl|ay first|
|000028f0| 20 6a 75 73 74 20 6f 6e | 63 65 2e 22 20 63 72 61 | just on|ce." cra|
|00002900| 73 68 2d 67 61 6d 65 20 | 22 53 6f 72 72 79 2c 20 |sh-game |"Sorry, |
|00002910| 49 20 68 61 76 65 20 62 | 65 65 6e 20 69 6e 74 65 |I have b|een inte|
|00002920| 72 72 75 70 74 65 64 20 | 61 6e 64 20 63 61 6e 6e |rrupted |and cann|
|00002930| 6f 74 20 72 65 73 75 6d | 65 20 74 68 61 74 20 67 |ot resum|e that g|
|00002940| 61 6d 65 2e 2e 2e 22 20 | 67 6f 6d 6f 6b 75 2d 64 |ame..." |gomoku-d|
|00002950| 69 73 70 6c 61 79 2d 73 | 74 61 74 69 73 74 69 63 |isplay-s|tatistic|
|00002960| 73 20 64 69 6e 67 20 67 | 6f 6d 6f 6b 75 2d 67 61 |s ding g|omoku-ga|
|00002970| 6d 65 2d 69 6e 2d 70 72 | 6f 67 72 65 73 73 5d 20 |me-in-pr|ogress] |
|00002980| 32 20 22 5c 0a 54 65 72 | 6d 69 6e 61 74 65 20 74 |2 "\.Ter|minate t|
|00002990| 68 65 20 63 75 72 72 65 | 6e 74 20 67 61 6d 65 20 |he curre|nt game |
|000029a0| 77 69 74 68 20 52 45 53 | 55 4c 54 2e 22 5d 29 0a |with RES|ULT."]).|
|000029b0| 28 64 65 66 61 6c 69 61 | 73 20 27 67 6f 6d 6f 6b |(defalia|s 'gomok|
|000029c0| 75 2d 63 72 61 73 68 2d | 67 61 6d 65 20 23 5b 6e |u-crash-|game #[n|
|000029d0| 69 6c 20 22 c0 11 c2 c3 | 21 88 c4 c5 21 88 c6 20 |il "....|!...!.. |
|000029e0| 87 22 20 5b 6e 69 6c 20 | 67 6f 6d 6f 6b 75 2d 65 |." [nil |gomoku-e|
|000029f0| 6d 61 63 73 2d 69 73 2d | 63 6f 6d 70 75 74 69 6e |macs-is-|computin|
|00002a00| 67 20 67 6f 6d 6f 6b 75 | 2d 74 65 72 6d 69 6e 61 |g gomoku|-termina|
|00002a10| 74 65 2d 67 61 6d 65 20 | 63 72 61 73 68 2d 67 61 |te-game |crash-ga|
|00002a20| 6d 65 20 73 69 74 2d 66 | 6f 72 20 34 20 67 6f 6d |me sit-f|or 4 gom|
|00002a30| 6f 6b 75 2d 70 72 6f 6d | 70 74 2d 66 6f 72 2d 6f |oku-prom|pt-for-o|
|00002a40| 74 68 65 72 2d 67 61 6d | 65 5d 20 32 20 22 5c 0a |ther-gam|e] 2 "\.|
|00002a50| 57 68 61 74 20 74 6f 20 | 64 6f 20 77 68 65 6e 20 |What to |do when |
|00002a60| 45 6d 61 63 73 20 64 65 | 74 65 63 74 73 20 69 74 |Emacs de|tects it|
|00002a70| 20 68 61 73 20 62 65 65 | 6e 20 69 6e 74 65 72 72 | has bee|n interr|
|00002a80| 75 70 74 65 64 2e 22 5d | 29 0a 28 64 65 66 61 6c |upted."]|).(defal|
|00002a90| 69 61 73 20 27 67 6f 6d | 6f 6b 75 20 23 5b 28 26 |ias 'gom|oku #[(&|
|00002aa0| 6f 70 74 69 6f 6e 61 6c | 20 6e 20 6d 29 20 22 c0 |optional| n m) ".|
|00002ab0| 20 88 09 83 5c 6e 00 c2 | 20 87 0b 84 88 00 c4 20 | ...\n..| ...... |
|00002ac0| c5 20 1e 06 1e 07 0e 08 | 84 1f 00 0e 07 16 08 0e |. ......|........|
|00002ad0| 09 84 28 00 0e 06 16 09 | 0e 08 ca 57 83 36 00 cb |..(.....|...W.6..|
|00002ae0| cc 21 88 82 52 00 0e 09 | ca 57 83 44 00 cb cd 21 |.!..R...|.W.D...!|
|00002af0| 88 82 52 00 0e 08 0e 07 | 56 83 52 00 cb ce 0e 08 |..R.....|V.R.....|
|00002b00| 5c 22 88 0e 09 0e 06 56 | 83 70 00 0e 09 0e 0f 9a |\".....V|.p......|
|00002b10| 84 70 00 d0 d1 d2 0e 09 | 5c 22 21 84 70 00 0e 06 |.p......|\"!.p...|
|00002b20| 16 09 2a d3 d4 21 88 d5 | 0e 08 0e 09 5c 22 88 d0 |..*..!..|....\"..|
|00002b30| d6 21 83 85 00 d7 20 87 | d8 20 87 d0 d9 21 83 91 |.!.... .|. ...!..|
|00002b40| 00 d8 20 87 da 20 87 22 | 20 5b 67 6f 6d 6f 6b 75 |.. .. ."| [gomoku|
|00002b50| 2d 73 77 69 74 63 68 2d | 74 6f 2d 77 69 6e 64 6f |-switch-|to-windo|
|00002b60| 77 20 67 6f 6d 6f 6b 75 | 2d 65 6d 61 63 73 2d 69 |w gomoku|-emacs-i|
|00002b70| 73 2d 63 6f 6d 70 75 74 | 69 6e 67 20 67 6f 6d 6f |s-comput|ing gomo|
|00002b80| 6b 75 2d 63 72 61 73 68 | 2d 67 61 6d 65 20 67 6f |ku-crash|-game go|
|00002b90| 6d 6f 6b 75 2d 67 61 6d | 65 2d 69 6e 2d 70 72 6f |moku-gam|e-in-pro|
|00002ba0| 67 72 65 73 73 20 67 6f | 6d 6f 6b 75 2d 6d 61 78 |gress go|moku-max|
|00002bb0| 2d 77 69 64 74 68 20 67 | 6f 6d 6f 6b 75 2d 6d 61 |-width g|omoku-ma|
|00002bc0| 78 2d 68 65 69 67 68 74 | 20 6d 61 78 2d 68 65 69 |x-height| max-hei|
|00002bd0| 67 68 74 20 6d 61 78 2d | 77 69 64 74 68 20 6e 20 |ght max-|width n |
|00002be0| 6d 20 31 20 65 72 72 6f | 72 20 22 49 20 6e 65 65 |m 1 erro|r "I nee|
|00002bf0| 64 20 61 74 20 6c 65 61 | 73 74 20 31 20 63 6f 6c |d at lea|st 1 col|
|00002c00| 75 6d 6e 22 20 22 49 20 | 6e 65 65 64 20 61 74 20 |umn" "I |need at |
|00002c10| 6c 65 61 73 74 20 31 20 | 72 6f 77 22 20 22 49 20 |least 1 |row" "I |
|00002c20| 63 61 6e 6e 6f 74 20 64 | 69 73 70 6c 61 79 20 25 |cannot d|isplay %|
|00002c30| 64 20 63 6f 6c 75 6d 6e | 73 20 69 6e 20 74 68 61 |d column|s in tha|
|00002c40| 74 20 77 69 6e 64 6f 77 | 22 20 67 6f 6d 6f 6b 75 |t window|" gomoku|
|00002c50| 2d 73 61 76 65 64 2d 62 | 6f 61 72 64 2d 68 65 69 |-saved-b|oard-hei|
|00002c60| 67 68 74 20 79 2d 6f 72 | 2d 6e 2d 70 20 66 6f 72 |ght y-or|-n-p for|
|00002c70| 6d 61 74 20 22 44 6f 20 | 79 6f 75 20 72 65 61 6c |mat "Do |you real|
|00002c80| 6c 79 20 77 61 6e 74 20 | 25 64 20 72 6f 77 73 20 |ly want |%d rows |
|00002c90| 22 20 6d 65 73 73 61 67 | 65 20 22 4f 6e 65 20 6d |" messag|e "One m|
|00002ca0| 6f 6d 65 6e 74 2c 20 70 | 6c 65 61 73 65 2e 2e 2e |oment, p|lease...|
|00002cb0| 22 20 67 6f 6d 6f 6b 75 | 2d 73 74 61 72 74 2d 67 |" gomoku|-start-g|
|00002cc0| 61 6d 65 20 22 44 6f 20 | 79 6f 75 20 61 6c 6c 6f |ame "Do |you allo|
|00002cd0| 77 20 6d 65 20 74 6f 20 | 70 6c 61 79 20 66 69 72 |w me to |play fir|
|00002ce0| 73 74 20 22 20 67 6f 6d | 6f 6b 75 2d 65 6d 61 63 |st " gom|oku-emac|
|00002cf0| 73 2d 70 6c 61 79 73 20 | 67 6f 6d 6f 6b 75 2d 70 |s-plays |gomoku-p|
|00002d00| 72 6f 6d 70 74 2d 66 6f | 72 2d 6d 6f 76 65 20 22 |rompt-fo|r-move "|
|00002d10| 53 68 61 6c 6c 20 77 65 | 20 63 6f 6e 74 69 6e 75 |Shall we| continu|
|00002d20| 65 20 6f 75 72 20 67 61 | 6d 65 20 22 20 67 6f 6d |e our ga|me " gom|
|00002d30| 6f 6b 75 2d 68 75 6d 61 | 6e 2d 72 65 73 69 67 6e |oku-huma|n-resign|
|00002d40| 73 5d 20 34 20 22 5c 0a | 53 74 61 72 74 20 61 20 |s] 4 "\.|Start a |
|00002d50| 47 6f 6d 6f 6b 75 20 67 | 61 6d 65 20 62 65 74 77 |Gomoku g|ame betw|
|00002d60| 65 65 6e 20 79 6f 75 20 | 61 6e 64 20 45 6d 61 63 |een you |and Emac|
|00002d70| 73 2e 0a 49 66 20 61 20 | 67 61 6d 65 20 69 73 20 |s..If a |game is |
|00002d80| 69 6e 20 70 72 6f 67 72 | 65 73 73 2c 20 74 68 69 |in progr|ess, thi|
|00002d90| 73 20 63 6f 6d 6d 61 6e | 64 20 61 6c 6c 6f 77 20 |s comman|d allow |
|00002da0| 79 6f 75 20 74 6f 20 72 | 65 73 75 6d 65 20 69 74 |you to r|esume it|
|00002db0| 2e 0a 49 66 20 6f 70 74 | 69 6f 6e 61 6c 20 61 72 |..If opt|ional ar|
|00002dc0| 67 75 6d 65 6e 74 73 20 | 4e 20 61 6e 64 20 4d 20 |guments |N and M |
|00002dd0| 61 72 65 20 67 69 76 65 | 6e 2c 20 61 6e 20 4e 20 |are give|n, an N |
|00002de0| 62 79 20 4d 20 62 6f 61 | 72 64 20 69 73 20 75 73 |by M boa|rd is us|
|00002df0| 65 64 2e 0a 0a 59 6f 75 | 20 61 6e 64 20 45 6d 61 |ed...You| and Ema|
|00002e00| 63 73 20 70 6c 61 79 20 | 69 6e 20 74 75 72 6e 20 |cs play |in turn |
|00002e10| 62 79 20 6d 61 72 6b 69 | 6e 67 20 61 20 66 72 65 |by marki|ng a fre|
|00002e20| 65 20 73 71 75 61 72 65 | 2e 20 20 59 6f 75 20 6d |e square|. You m|
|00002e30| 61 72 6b 20 69 74 20 77 | 69 74 68 20 58 0a 61 6e |ark it w|ith X.an|
|00002e40| 64 20 45 6d 61 63 73 20 | 6d 61 72 6b 73 20 69 74 |d Emacs |marks it|
|00002e50| 20 77 69 74 68 20 4f 2e | 20 54 68 65 20 77 69 6e | with O.| The win|
|00002e60| 6e 65 72 20 69 73 20 74 | 68 65 20 66 69 72 73 74 |ner is t|he first|
|00002e70| 20 74 6f 20 67 65 74 20 | 66 69 76 65 20 63 6f 6e | to get |five con|
|00002e80| 74 69 67 75 6f 75 73 0a | 6d 61 72 6b 73 20 68 6f |tiguous.|marks ho|
|00002e90| 72 69 7a 6f 6e 74 61 6c | 6c 79 2c 20 76 65 72 74 |rizontal|ly, vert|
|00002ea0| 69 63 61 6c 6c 79 20 6f | 72 20 69 6e 20 64 69 61 |ically o|r in dia|
|00002eb0| 67 6f 6e 61 6c 2e 0a 0a | 59 6f 75 20 70 6c 61 79 |gonal...|You play|
|00002ec0| 20 62 79 20 6d 6f 76 69 | 6e 67 20 74 68 65 20 63 | by movi|ng the c|
|00002ed0| 75 72 73 6f 72 20 6f 76 | 65 72 20 74 68 65 20 73 |ursor ov|er the s|
|00002ee0| 71 75 61 72 65 20 79 6f | 75 20 63 68 6f 6f 73 65 |quare yo|u choose|
|00002ef0| 20 61 6e 64 20 68 69 74 | 74 69 6e 67 0a 5c 5c 3c | and hit|ting.\\<|
|00002f00| 67 6f 6d 6f 6b 75 2d 6d | 6f 64 65 2d 6d 61 70 3e |gomoku-m|ode-map>|
|00002f10| 5c 5c 5b 67 6f 6d 6f 6b | 75 2d 68 75 6d 61 6e 2d |\\[gomok|u-human-|
|00002f20| 70 6c 61 79 73 5d 2e 0a | 55 73 65 20 5c 5c 5b 64 |plays]..|Use \\[d|
|00002f30| 65 73 63 72 69 62 65 2d | 6d 6f 64 65 5d 20 66 6f |escribe-|mode] fo|
|00002f40| 72 20 6d 6f 72 65 20 69 | 6e 66 6f 2e 22 20 6e 69 |r more i|nfo." ni|
|00002f50| 6c 5d 29 0a 28 64 65 66 | 61 6c 69 61 73 20 27 67 |l]).(def|alias 'g|
|00002f60| 6f 6d 6f 6b 75 2d 65 6d | 61 63 73 2d 70 6c 61 79 |omoku-em|acs-play|
|00002f70| 73 20 23 5b 6e 69 6c 20 | 22 c0 20 88 09 83 5c 6e |s #[nil |". ...\n|
|00002f80| 00 c2 20 87 0b 84 11 00 | c4 20 87 c5 c6 21 88 c7 |.. .....|. ...!..|
|00002f90| 89 1e 08 1e 09 ca 20 89 | 16 09 84 29 00 cb cc 21 |...... .|...)...!|
|00002fa0| 82 74 00 0e 0d 0e 09 48 | 16 08 ce 0e 09 cf 5c 22 |.t.....H|......\"|
|00002fb0| 88 0e 08 0e 10 59 83 4d | 00 d1 0e 09 cf 5c 22 88 |.....Y.M|.....\".|
|00002fc0| d2 20 88 cb d3 21 82 74 | 00 0e 08 d4 55 83 5a 00 |. ...!.t|....U.Z.|
|00002fd0| cb cc 21 82 74 00 0e 15 | 0e 16 56 83 72 00 0e 17 |..!.t...|..V.r...|
|00002fe0| 84 72 00 d8 20 83 72 00 | cb d9 21 82 74 00 da 20 |.r.. .r.|..!.t.. |
|00002ff0| 2a 87 22 20 5b 67 6f 6d | 6f 6b 75 2d 73 77 69 74 |*." [gom|oku-swit|
|00003000| 63 68 2d 74 6f 2d 77 69 | 6e 64 6f 77 20 67 6f 6d |ch-to-wi|ndow gom|
|00003010| 6f 6b 75 2d 65 6d 61 63 | 73 2d 69 73 2d 63 6f 6d |oku-emac|s-is-com|
|00003020| 70 75 74 69 6e 67 20 67 | 6f 6d 6f 6b 75 2d 63 72 |puting g|omoku-cr|
|00003030| 61 73 68 2d 67 61 6d 65 | 20 67 6f 6d 6f 6b 75 2d |ash-game| gomoku-|
|00003040| 67 61 6d 65 2d 69 6e 2d | 70 72 6f 67 72 65 73 73 |game-in-|progress|
|00003050| 20 67 6f 6d 6f 6b 75 2d | 70 72 6f 6d 70 74 2d 66 | gomoku-|prompt-f|
|00003060| 6f 72 2d 6f 74 68 65 72 | 2d 67 61 6d 65 20 6d 65 |or-other|-game me|
|00003070| 73 73 61 67 65 20 22 4c | 65 74 20 6d 65 20 74 68 |ssage "L|et me th|
|00003080| 69 6e 6b 2e 2e 2e 22 20 | 6e 69 6c 20 73 63 6f 72 |ink..." |nil scor|
|00003090| 65 20 73 71 75 61 72 65 | 20 67 6f 6d 6f 6b 75 2d |e square| gomoku-|
|000030a0| 73 74 72 6f 6e 67 65 73 | 74 2d 73 71 75 61 72 65 |stronges|t-square|
|000030b0| 20 67 6f 6d 6f 6b 75 2d | 74 65 72 6d 69 6e 61 74 | gomoku-|terminat|
|000030c0| 65 2d 67 61 6d 65 20 6e | 6f 62 6f 64 79 2d 77 6f |e-game n|obody-wo|
|000030d0| 6e 20 67 6f 6d 6f 6b 75 | 2d 73 63 6f 72 65 2d 74 |n gomoku|-score-t|
|000030e0| 61 62 6c 65 20 67 6f 6d | 6f 6b 75 2d 70 6c 61 79 |able gom|oku-play|
|000030f0| 2d 6d 6f 76 65 20 36 20 | 67 6f 6d 6f 6b 75 2d 77 |-move 6 |gomoku-w|
|00003100| 69 6e 6e 69 6e 67 2d 74 | 68 72 65 73 68 6f 6c 64 |inning-t|hreshold|
|00003110| 20 67 6f 6d 6f 6b 75 2d | 66 69 6e 64 2d 66 69 6c | gomoku-|find-fil|
|00003120| 6c 65 64 2d 71 74 75 70 | 6c 65 20 67 6f 6d 6f 6b |led-qtup|le gomok|
|00003130| 75 2d 63 72 6f 73 73 2d | 77 69 6e 6e 69 6e 67 2d |u-cross-|winning-|
|00003140| 71 74 75 70 6c 65 20 65 | 6d 61 63 73 2d 77 6f 6e |qtuple e|macs-won|
|00003150| 20 30 20 67 6f 6d 6f 6b | 75 2d 6e 75 6d 62 65 72 | 0 gomok|u-number|
|00003160| 2d 6f 66 2d 6d 6f 76 65 | 73 20 67 6f 6d 6f 6b 75 |-of-move|s gomoku|
|00003170| 2d 64 72 61 77 2d 6c 69 | 6d 69 74 20 67 6f 6d 6f |-draw-li|mit gomo|
|00003180| 6b 75 2d 68 75 6d 61 6e | 2d 72 65 66 75 73 65 64 |ku-human|-refused|
|00003190| 2d 64 72 61 77 20 67 6f | 6d 6f 6b 75 2d 6f 66 66 |-draw go|moku-off|
|000031a0| 65 72 2d 61 2d 64 72 61 | 77 20 64 72 61 77 2d 61 |er-a-dra|w draw-a|
|000031b0| 67 72 65 65 64 20 67 6f | 6d 6f 6b 75 2d 70 72 6f |greed go|moku-pro|
|000031c0| 6d 70 74 2d 66 6f 72 2d | 6d 6f 76 65 5d 20 34 20 |mpt-for-|move] 4 |
|000031d0| 22 5c 0a 43 6f 6d 70 75 | 74 65 20 45 6d 61 63 73 |"\.Compu|te Emacs|
|000031e0| 20 6e 65 78 74 20 6d 6f | 76 65 20 61 6e 64 20 70 | next mo|ve and p|
|000031f0| 6c 61 79 20 69 74 2e 22 | 20 6e 69 6c 5d 29 0a 28 |lay it."| nil]).(|
|00003200| 64 65 66 61 6c 69 61 73 | 20 27 67 6f 6d 6f 6b 75 |defalias| 'gomoku|
|00003210| 2d 68 75 6d 61 6e 2d 70 | 6c 61 79 73 20 23 5b 6e |-human-p|lays #[n|
|00003220| 69 6c 20 22 c0 20 88 09 | 83 5c 6e 00 c2 20 87 0b |il ". ..|.\n.. ..|
|00003230| 84 11 00 c4 20 87 c5 89 | 1e 06 1e 07 c8 20 89 16 |.... ...|..... ..|
|00003240| 07 84 25 00 c9 ca 21 82 | 5d 00 0e 0b 0e 07 48 cc |..%...!.|].....H.|
|00003250| 55 84 35 00 c9 cd 21 82 | 5d 00 0e 0e 0e 07 48 16 |U.5...!.|].....H.|
|00003260| 06 cf 0e 07 d0 5c 22 88 | 0e 06 0e 11 59 83 5b 00 |.....\".|....Y.[.|
|00003270| d2 0e 07 d0 5c 22 83 5b | 00 d3 20 88 d4 d5 21 82 |....\".[|.. ...!.|
|00003280| 5d 00 d6 20 2a 87 22 20 | 5b 67 6f 6d 6f 6b 75 2d |].. *." |[gomoku-|
|00003290| 73 77 69 74 63 68 2d 74 | 6f 2d 77 69 6e 64 6f 77 |switch-t|o-window|
|000032a0| 20 67 6f 6d 6f 6b 75 2d | 65 6d 61 63 73 2d 69 73 | gomoku-|emacs-is|
|000032b0| 2d 63 6f 6d 70 75 74 69 | 6e 67 20 67 6f 6d 6f 6b |-computi|ng gomok|
|000032c0| 75 2d 63 72 61 73 68 2d | 67 61 6d 65 20 67 6f 6d |u-crash-|game gom|
|000032d0| 6f 6b 75 2d 67 61 6d 65 | 2d 69 6e 2d 70 72 6f 67 |oku-game|-in-prog|
|000032e0| 72 65 73 73 20 67 6f 6d | 6f 6b 75 2d 70 72 6f 6d |ress gom|oku-prom|
|000032f0| 70 74 2d 66 6f 72 2d 6f | 74 68 65 72 2d 67 61 6d |pt-for-o|ther-gam|
|00003300| 65 20 6e 69 6c 20 73 63 | 6f 72 65 20 73 71 75 61 |e nil sc|ore squa|
|00003310| 72 65 20 67 6f 6d 6f 6b | 75 2d 70 6f 69 6e 74 2d |re gomok|u-point-|
|00003320| 73 71 75 61 72 65 20 65 | 72 72 6f 72 20 22 59 6f |square e|rror "Yo|
|00003330| 75 72 20 70 6f 69 6e 74 | 20 69 73 20 6e 6f 74 20 |ur point| is not |
|00003340| 6f 6e 20 61 20 73 71 75 | 61 72 65 2e 20 52 65 74 |on a squ|are. Ret|
|00003350| 72 79 20 21 22 20 67 6f | 6d 6f 6b 75 2d 62 6f 61 |ry !" go|moku-boa|
|00003360| 72 64 20 30 20 22 59 6f | 75 72 20 70 6f 69 6e 74 |rd 0 "Yo|ur point|
|00003370| 20 69 73 20 6e 6f 74 20 | 6f 6e 20 61 20 66 72 65 | is not |on a fre|
|00003380| 65 20 73 71 75 61 72 65 | 2e 20 52 65 74 72 79 20 |e square|. Retry |
|00003390| 21 22 20 67 6f 6d 6f 6b | 75 2d 73 63 6f 72 65 2d |!" gomok|u-score-|
|000033a0| 74 61 62 6c 65 20 67 6f | 6d 6f 6b 75 2d 70 6c 61 |table go|moku-pla|
|000033b0| 79 2d 6d 6f 76 65 20 31 | 20 67 6f 6d 6f 6b 75 2d |y-move 1| gomoku-|
|000033c0| 6c 6f 6f 73 69 6e 67 2d | 74 68 72 65 73 68 6f 6c |loosing-|threshol|
|000033d0| 64 20 67 6f 6d 6f 6b 75 | 2d 66 69 6e 64 2d 66 69 |d gomoku|-find-fi|
|000033e0| 6c 6c 65 64 2d 71 74 75 | 70 6c 65 20 67 6f 6d 6f |lled-qtu|ple gomo|
|000033f0| 6b 75 2d 63 72 6f 73 73 | 2d 77 69 6e 6e 69 6e 67 |ku-cross|-winning|
|00003400| 2d 71 74 75 70 6c 65 20 | 67 6f 6d 6f 6b 75 2d 74 |-qtuple |gomoku-t|
|00003410| 65 72 6d 69 6e 61 74 65 | 2d 67 61 6d 65 20 68 75 |erminate|-game hu|
|00003420| 6d 61 6e 2d 77 6f 6e 20 | 67 6f 6d 6f 6b 75 2d 65 |man-won |gomoku-e|
|00003430| 6d 61 63 73 2d 70 6c 61 | 79 73 5d 20 34 20 22 5c |macs-pla|ys] 4 "\|
|00003440| 0a 53 69 67 6e 61 6c 20 | 74 6f 20 74 68 65 20 47 |.Signal |to the G|
|00003450| 6f 6d 6f 6b 75 20 70 72 | 6f 67 72 61 6d 20 74 68 |omoku pr|ogram th|
|00003460| 61 74 20 79 6f 75 20 68 | 61 76 65 20 70 6c 61 79 |at you h|ave play|
|00003470| 65 64 2e 0a 59 6f 75 20 | 6d 75 73 74 20 68 61 76 |ed..You |must hav|
|00003480| 65 20 70 75 74 20 74 68 | 65 20 63 75 72 73 6f 72 |e put th|e cursor|
|00003490| 20 6f 6e 20 74 68 65 20 | 73 71 75 61 72 65 20 77 | on the |square w|
|000034a0| 68 65 72 65 20 79 6f 75 | 20 77 61 6e 74 20 74 6f |here you| want to|
|000034b0| 20 70 6c 61 79 2e 0a 49 | 66 20 74 68 65 20 67 61 | play..I|f the ga|
|000034c0| 6d 65 20 69 73 20 66 69 | 6e 69 73 68 65 64 2c 20 |me is fi|nished, |
|000034d0| 74 68 69 73 20 63 6f 6d | 6d 61 6e 64 20 72 65 71 |this com|mand req|
|000034e0| 75 65 73 74 73 20 66 6f | 72 20 61 6e 6f 74 68 65 |uests fo|r anothe|
|000034f0| 72 20 67 61 6d 65 2e 22 | 20 6e 69 6c 5d 29 0a 28 |r game."| nil]).(|
|00003500| 64 65 66 61 6c 69 61 73 | 20 27 67 6f 6d 6f 6b 75 |defalias| 'gomoku|
|00003510| 2d 68 75 6d 61 6e 2d 74 | 61 6b 65 73 2d 62 61 63 |-human-t|akes-bac|
|00003520| 6b 20 23 5b 6e 69 6c 20 | 22 c0 20 88 09 83 5c 6e |k #[nil |". ...\n|
|00003530| 00 c2 20 87 0b 84 19 00 | c4 c5 21 88 c6 c7 21 88 |.. .....|..!...!.|
|00003540| c8 20 87 0e 09 ca 55 83 | 24 00 c4 cb 21 87 c4 cc |. ....U.|$...!...|
|00003550| 21 88 cd 16 0e 0e 09 1e | 0f 0e 0f 0e 09 55 83 3d |!.......|.....U.=|
|00003560| 00 d0 20 88 82 2f 00 29 | d1 20 87 22 20 5b 67 6f |.. ../.)|. ." [go|
|00003570| 6d 6f 6b 75 2d 73 77 69 | 74 63 68 2d 74 6f 2d 77 |moku-swi|tch-to-w|
|00003580| 69 6e 64 6f 77 20 67 6f | 6d 6f 6b 75 2d 65 6d 61 |indow go|moku-ema|
|00003590| 63 73 2d 69 73 2d 63 6f | 6d 70 75 74 69 6e 67 20 |cs-is-co|mputing |
|000035a0| 67 6f 6d 6f 6b 75 2d 63 | 72 61 73 68 2d 67 61 6d |gomoku-c|rash-gam|
|000035b0| 65 20 67 6f 6d 6f 6b 75 | 2d 67 61 6d 65 2d 69 6e |e gomoku|-game-in|
|000035c0| 2d 70 72 6f 67 72 65 73 | 73 20 6d 65 73 73 61 67 |-progres|s messag|
|000035d0| 65 20 22 54 6f 6f 20 6c | 61 74 65 20 66 6f 72 20 |e "Too l|ate for |
|000035e0| 74 61 6b 69 6e 67 20 62 | 61 63 6b 2e 2e 2e 22 20 |taking b|ack..." |
|000035f0| 73 69 74 2d 66 6f 72 20 | 34 20 67 6f 6d 6f 6b 75 |sit-for |4 gomoku|
|00003600| 2d 70 72 6f 6d 70 74 2d | 66 6f 72 2d 6f 74 68 65 |-prompt-|for-othe|
|00003610| 72 2d 67 61 6d 65 20 67 | 6f 6d 6f 6b 75 2d 6e 75 |r-game g|omoku-nu|
|00003620| 6d 62 65 72 2d 6f 66 2d | 68 75 6d 61 6e 2d 6d 6f |mber-of-|human-mo|
|00003630| 76 65 73 20 30 20 22 59 | 6f 75 20 68 61 76 65 20 |ves 0 "Y|ou have |
|00003640| 6e 6f 74 20 70 6c 61 79 | 65 64 20 79 65 74 2e 2e |not play|ed yet..|
|00003650| 2e 20 59 6f 75 72 20 6d | 6f 76 65 20 3f 22 20 22 |. Your m|ove ?" "|
|00003660| 4f 6e 65 20 6d 6f 6d 65 | 6e 74 2c 20 70 6c 65 61 |One mome|nt, plea|
|00003670| 73 65 2e 2e 2e 22 20 74 | 20 67 6f 6d 6f 6b 75 2d |se..." t| gomoku-|
|00003680| 68 75 6d 61 6e 2d 74 6f | 6f 6b 2d 62 61 63 6b 20 |human-to|ok-back |
|00003690| 6e 75 6d 62 65 72 20 67 | 6f 6d 6f 6b 75 2d 74 61 |number g|omoku-ta|
|000036a0| 6b 65 2d 62 61 63 6b 20 | 67 6f 6d 6f 6b 75 2d 70 |ke-back |gomoku-p|
|000036b0| 72 6f 6d 70 74 2d 66 6f | 72 2d 6d 6f 76 65 5d 20 |rompt-fo|r-move] |
|000036c0| 32 20 22 5c 0a 53 69 67 | 6e 61 6c 20 74 6f 20 74 |2 "\.Sig|nal to t|
|000036d0| 68 65 20 47 6f 6d 6f 6b | 75 20 70 72 6f 67 72 61 |he Gomok|u progra|
|000036e0| 6d 20 74 68 61 74 20 79 | 6f 75 20 77 69 73 68 20 |m that y|ou wish |
|000036f0| 74 6f 20 74 61 6b 65 20 | 62 61 63 6b 20 79 6f 75 |to take |back you|
|00003700| 72 20 6c 61 73 74 20 6d | 6f 76 65 2e 22 20 6e 69 |r last m|ove." ni|
|00003710| 6c 5d 29 0a 28 64 65 66 | 61 6c 69 61 73 20 27 67 |l]).(def|alias 'g|
|00003720| 6f 6d 6f 6b 75 2d 68 75 | 6d 61 6e 2d 72 65 73 69 |omoku-hu|man-resi|
|00003730| 67 6e 73 20 23 5b 6e 69 | 6c 20 22 c0 20 88 09 83 |gns #[ni|l ". ...|
|00003740| 5c 6e 00 c2 20 87 0b 84 | 12 00 c4 c5 21 87 c6 c7 |\n.. ...|....!...|
|00003750| 21 83 1c 00 c8 c9 21 87 | c6 ca 21 83 25 00 cb 20 |!.....!.|..!.%.. |
|00003760| 87 c8 c9 21 87 22 20 5b | 67 6f 6d 6f 6b 75 2d 73 |...!." [|gomoku-s|
|00003770| 77 69 74 63 68 2d 74 6f | 2d 77 69 6e 64 6f 77 20 |witch-to|-window |
|00003780| 67 6f 6d 6f 6b 75 2d 65 | 6d 61 63 73 2d 69 73 2d |gomoku-e|macs-is-|
|00003790| 63 6f 6d 70 75 74 69 6e | 67 20 67 6f 6d 6f 6b 75 |computin|g gomoku|
|000037a0| 2d 63 72 61 73 68 2d 67 | 61 6d 65 20 67 6f 6d 6f |-crash-g|ame gomo|
|000037b0| 6b 75 2d 67 61 6d 65 2d | 69 6e 2d 70 72 6f 67 72 |ku-game-|in-progr|
|000037c0| 65 73 73 20 6d 65 73 73 | 61 67 65 20 22 54 68 65 |ess mess|age "The|
|000037d0| 72 65 20 69 73 20 6e 6f | 20 67 61 6d 65 20 69 6e |re is no| game in|
|000037e0| 20 70 72 6f 67 72 65 73 | 73 22 20 79 2d 6f 72 2d | progres|s" y-or-|
|000037f0| 6e 2d 70 20 22 59 6f 75 | 20 6d 65 61 6e 2c 20 79 |n-p "You| mean, y|
|00003800| 6f 75 20 72 65 73 69 67 | 6e 20 22 20 67 6f 6d 6f |ou resig|n " gomo|
|00003810| 6b 75 2d 74 65 72 6d 69 | 6e 61 74 65 2d 67 61 6d |ku-termi|nate-gam|
|00003820| 65 20 68 75 6d 61 6e 2d | 72 65 73 69 67 6e 65 64 |e human-|resigned|
|00003830| 20 22 59 6f 75 20 6d 65 | 61 6e 2c 20 77 65 20 63 | "You me|an, we c|
|00003840| 6f 6e 74 69 6e 75 65 20 | 22 20 67 6f 6d 6f 6b 75 |ontinue |" gomoku|
|00003850| 2d 70 72 6f 6d 70 74 2d | 66 6f 72 2d 6d 6f 76 65 |-prompt-|for-move|
|00003860| 5d 20 32 20 22 5c 0a 53 | 69 67 6e 61 6c 20 74 6f |] 2 "\.S|ignal to|
|00003870| 20 74 68 65 20 47 6f 6d | 6f 6b 75 20 70 72 6f 67 | the Gom|oku prog|
|00003880| 72 61 6d 20 74 68 61 74 | 20 79 6f 75 20 6d 61 79 |ram that| you may|
|00003890| 20 77 61 6e 74 20 74 6f | 20 72 65 73 69 67 6e 2e | want to| resign.|
|000038a0| 22 20 6e 69 6c 5d 29 0a | 28 64 65 66 61 6c 69 61 |" nil]).|(defalia|
|000038b0| 73 20 27 67 6f 6d 6f 6b | 75 2d 70 72 6f 6d 70 74 |s 'gomok|u-prompt|
|000038c0| 2d 66 6f 72 2d 6d 6f 76 | 65 20 23 5b 6e 69 6c 20 |-for-mov|e #[nil |
|000038d0| 22 c0 09 c2 55 83 0b 00 | c3 82 5c 66 00 c4 21 88 |"...U...|..\f..!.|
|000038e0| 8a c5 20 71 29 87 22 20 | 5b 6d 65 73 73 61 67 65 |.. q)." |[message|
|000038f0| 20 67 6f 6d 6f 6b 75 2d | 6e 75 6d 62 65 72 2d 6f | gomoku-|number-o|
|00003900| 66 2d 68 75 6d 61 6e 2d | 6d 6f 76 65 73 20 30 20 |f-human-|moves 0 |
|00003910| 22 59 6f 75 72 20 6d 6f | 76 65 20 3f 20 28 6d 6f |"Your mo|ve ? (mo|
|00003920| 76 65 20 74 6f 20 61 20 | 66 72 65 65 20 73 71 75 |ve to a |free squ|
|00003930| 61 72 65 20 61 6e 64 20 | 68 69 74 20 58 2c 20 52 |are and |hit X, R|
|00003940| 45 54 20 2e 2e 2e 29 22 | 20 22 59 6f 75 72 20 6d |ET ...)"| "Your m|
|00003950| 6f 76 65 20 3f 22 20 6f | 74 68 65 72 2d 62 75 66 |ove ?" o|ther-buf|
|00003960| 66 65 72 5d 20 33 20 22 | 5c 0a 44 69 73 70 6c 61 |fer] 3 "|\.Displa|
|00003970| 79 20 61 20 6d 65 73 73 | 61 67 65 20 61 73 6b 69 |y a mess|age aski|
|00003980| 6e 67 20 66 6f 72 20 48 | 75 6d 61 6e 27 73 20 6d |ng for H|uman's m|
|00003990| 6f 76 65 2e 22 5d 29 0a | 28 64 65 66 61 6c 69 61 |ove."]).|(defalia|
|000039a0| 73 20 27 67 6f 6d 6f 6b | 75 2d 70 72 6f 6d 70 74 |s 'gomok|u-prompt|
|000039b0| 2d 66 6f 72 2d 6f 74 68 | 65 72 2d 67 61 6d 65 20 |-for-oth|er-game |
|000039c0| 23 5b 6e 69 6c 20 22 c0 | c1 21 83 0b 00 c2 0b 5c |#[nil ".|.!.....\|
|000039d0| 66 5c 22 87 c5 c6 21 87 | 22 20 5b 79 2d 6f 72 2d |f\"...!.|" [y-or-|
|000039e0| 6e 2d 70 20 22 41 6e 6f | 74 68 65 72 20 67 61 6d |n-p "Ano|ther gam|
|000039f0| 65 20 22 20 67 6f 6d 6f | 6b 75 20 67 6f 6d 6f 6b |e " gomo|ku gomok|
|00003a00| 75 2d 62 6f 61 72 64 2d | 77 69 64 74 68 20 67 6f |u-board-|width go|
|00003a10| 6d 6f 6b 75 2d 62 6f 61 | 72 64 2d 68 65 69 67 68 |moku-boa|rd-heigh|
|00003a20| 74 20 6d 65 73 73 61 67 | 65 20 22 43 68 69 63 6b |t messag|e "Chick|
|00003a30| 65 6e 20 21 22 5d 20 33 | 20 22 5c 0a 41 73 6b 20 |en !"] 3| "\.Ask |
|00003a40| 66 6f 72 20 61 6e 6f 74 | 68 65 72 20 67 61 6d 65 |for anot|her game|
|00003a50| 2c 20 61 6e 64 20 73 74 | 61 72 74 20 69 74 2e 22 |, and st|art it."|
|00003a60| 5d 29 0a 28 64 65 66 61 | 6c 69 61 73 20 27 67 6f |]).(defa|lias 'go|
|00003a70| 6d 6f 6b 75 2d 6f 66 66 | 65 72 2d 61 2d 64 72 61 |moku-off|er-a-dra|
|00003a80| 77 20 23 5b 6e 69 6c 20 | 22 c0 c1 21 86 09 00 c2 |w #[nil |"..!....|
|00003a90| 89 13 87 22 20 5b 79 2d | 6f 72 2d 6e 2d 70 20 22 |..." [y-|or-n-p "|
|00003aa0| 49 20 6f 66 66 65 72 20 | 79 6f 75 20 61 20 64 72 |I offer |you a dr|
|00003ab0| 61 77 2e 20 44 6f 20 79 | 6f 75 20 61 63 63 65 70 |aw. Do y|ou accep|
|00003ac0| 74 20 69 74 20 22 20 74 | 20 67 6f 6d 6f 6b 75 2d |t it " t| gomoku-|
|00003ad0| 68 75 6d 61 6e 2d 72 65 | 66 75 73 65 64 2d 64 72 |human-re|fused-dr|
|00003ae0| 61 77 5d 20 32 20 22 5c | 0a 4f 66 66 65 72 20 61 |aw] 2 "\|.Offer a|
|00003af0| 20 64 72 61 77 20 61 6e | 64 20 72 65 74 75 72 6e | draw an|d return|
|00003b00| 20 54 20 69 66 20 48 75 | 6d 61 6e 20 61 63 63 65 | T if Hu|man acce|
|00003b10| 70 74 65 64 20 69 74 2e | 22 5d 29 0a 28 64 65 66 |pted it.|"]).(def|
|00003b20| 63 6f 6e 73 74 20 67 6f | 6d 6f 6b 75 2d 73 71 75 |const go|moku-squ|
|00003b30| 61 72 65 2d 77 69 64 74 | 68 20 34 20 22 5c 0a 2a |are-widt|h 4 "\.*|
|00003b40| 48 6f 72 69 7a 6f 6e 74 | 61 6c 20 73 70 61 63 69 |Horizont|al spaci|
|00003b50| 6e 67 20 62 65 74 77 65 | 65 6e 20 73 71 75 61 72 |ng betwe|en squar|
|00003b60| 65 73 20 6f 6e 20 74 68 | 65 20 47 6f 6d 6f 6b 75 |es on th|e Gomoku|
|00003b70| 20 62 6f 61 72 64 2e 22 | 29 0a 28 64 65 66 63 6f | board."|).(defco|
|00003b80| 6e 73 74 20 67 6f 6d 6f | 6b 75 2d 73 71 75 61 72 |nst gomo|ku-squar|
|00003b90| 65 2d 68 65 69 67 68 74 | 20 32 20 22 5c 0a 2a 56 |e-height| 2 "\.*V|
|00003ba0| 65 72 74 69 63 61 6c 20 | 73 70 61 63 69 6e 67 20 |ertical |spacing |
|00003bb0| 62 65 74 77 65 65 6e 20 | 73 71 75 61 72 65 73 20 |between |squares |
|00003bc0| 6f 6e 20 74 68 65 20 47 | 6f 6d 6f 6b 75 20 62 6f |on the G|omoku bo|
|00003bd0| 61 72 64 2e 22 29 0a 28 | 64 65 66 63 6f 6e 73 74 |ard.").(|defconst|
|00003be0| 20 67 6f 6d 6f 6b 75 2d | 78 2d 6f 66 66 73 65 74 | gomoku-|x-offset|
|00003bf0| 20 33 20 22 5c 0a 2a 4e | 75 6d 62 65 72 20 6f 66 | 3 "\.*N|umber of|
|00003c00| 20 63 6f 6c 75 6d 6e 73 | 20 62 65 74 77 65 65 6e | columns| between|
|00003c10| 20 74 68 65 20 47 6f 6d | 6f 6b 75 20 62 6f 61 72 | the Gom|oku boar|
|00003c20| 64 20 61 6e 64 20 74 68 | 65 20 73 69 64 65 20 6f |d and th|e side o|
|00003c30| 66 20 74 68 65 20 77 69 | 6e 64 6f 77 2e 22 29 0a |f the wi|ndow.").|
|00003c40| 28 64 65 66 63 6f 6e 73 | 74 20 67 6f 6d 6f 6b 75 |(defcons|t gomoku|
|00003c50| 2d 79 2d 6f 66 66 73 65 | 74 20 31 20 22 5c 0a 2a |-y-offse|t 1 "\.*|
|00003c60| 4e 75 6d 62 65 72 20 6f | 66 20 6c 69 6e 65 73 20 |Number o|f lines |
|00003c70| 62 65 74 77 65 65 6e 20 | 74 68 65 20 47 6f 6d 6f |between |the Gomo|
|00003c80| 6b 75 20 62 6f 61 72 64 | 20 61 6e 64 20 74 68 65 |ku board| and the|
|00003c90| 20 74 6f 70 20 6f 66 20 | 74 68 65 20 77 69 6e 64 | top of |the wind|
|00003ca0| 6f 77 2e 22 29 0a 28 64 | 65 66 61 6c 69 61 73 20 |ow.").(d|efalias |
|00003cb0| 27 67 6f 6d 6f 6b 75 2d | 6d 61 78 2d 77 69 64 74 |'gomoku-|max-widt|
|00003cc0| 68 20 23 5b 6e 69 6c 20 | 22 c0 c1 20 21 5c 6e 5a |h #[nil |".. !\nZ|
|00003cd0| 5c 6e 5a c3 5a 5c 66 a5 | 54 87 22 20 5b 77 69 6e |\nZ.Z\f.|T." [win|
|00003ce0| 64 6f 77 2d 77 69 64 74 | 68 20 73 65 6c 65 63 74 |dow-widt|h select|
|00003cf0| 65 64 2d 77 69 6e 64 6f | 77 20 67 6f 6d 6f 6b 75 |ed-windo|w gomoku|
|00003d00| 2d 78 2d 6f 66 66 73 65 | 74 20 31 20 67 6f 6d 6f |-x-offse|t 1 gomo|
|00003d10| 6b 75 2d 73 71 75 61 72 | 65 2d 77 69 64 74 68 5d |ku-squar|e-width]|
|00003d20| 20 32 20 22 5c 0a 4c 61 | 72 67 65 73 74 20 70 6f | 2 "\.La|rgest po|
|00003d30| 73 73 69 62 6c 65 20 62 | 6f 61 72 64 20 77 69 64 |ssible b|oard wid|
|00003d40| 74 68 20 66 6f 72 20 74 | 68 65 20 63 75 72 72 65 |th for t|he curre|
|00003d50| 6e 74 20 77 69 6e 64 6f | 77 2e 22 5d 29 0a 28 64 |nt windo|w."]).(d|
|00003d60| 65 66 61 6c 69 61 73 20 | 27 67 6f 6d 6f 6b 75 2d |efalias |'gomoku-|
|00003d70| 6d 61 78 2d 68 65 69 67 | 68 74 20 23 5b 6e 69 6c |max-heig|ht #[nil|
|00003d80| 20 22 c0 c1 20 21 5c 6e | 5a 5c 6e 5a c3 5a 5c 66 | ".. !\n|Z\nZ.Z\f|
|00003d90| a5 54 87 22 20 5b 77 69 | 6e 64 6f 77 2d 68 65 69 |.T." [wi|ndow-hei|
|00003da0| 67 68 74 20 73 65 6c 65 | 63 74 65 64 2d 77 69 6e |ght sele|cted-win|
|00003db0| 64 6f 77 20 67 6f 6d 6f | 6b 75 2d 79 2d 6f 66 66 |dow gomo|ku-y-off|
|00003dc0| 73 65 74 20 32 20 67 6f | 6d 6f 6b 75 2d 73 71 75 |set 2 go|moku-squ|
|00003dd0| 61 72 65 2d 68 65 69 67 | 68 74 5d 20 32 20 22 5c |are-heig|ht] 2 "\|
|00003de0| 0a 4c 61 72 67 65 73 74 | 20 70 6f 73 73 69 62 6c |.Largest| possibl|
|00003df0| 65 20 62 6f 61 72 64 20 | 68 65 69 67 68 74 20 66 |e board |height f|
|00003e00| 6f 72 20 74 68 65 20 63 | 75 72 72 65 6e 74 20 77 |or the c|urrent w|
|00003e10| 69 6e 64 6f 77 2e 22 5d | 29 0a 28 64 65 66 61 6c |indow."]|).(defal|
|00003e20| 69 61 73 20 27 67 6f 6d | 6f 6b 75 2d 70 6f 69 6e |ias 'gom|oku-poin|
|00003e30| 74 2d 78 20 23 5b 6e 69 | 6c 20 22 69 08 5a 89 19 |t-x #[ni|l "i.Z..|
|00003e40| c2 59 85 1e 00 09 0b a6 | c2 55 85 1e 00 09 0b a5 |.Y......|.U......|
|00003e50| 54 89 11 5c 66 58 85 1e | 00 09 29 87 22 20 5b 67 |T..\fX..|..)." [g|
|00003e60| 6f 6d 6f 6b 75 2d 78 2d | 6f 66 66 73 65 74 20 63 |omoku-x-|offset c|
|00003e70| 6f 6c 20 30 20 67 6f 6d | 6f 6b 75 2d 73 71 75 61 |ol 0 gom|oku-squa|
|00003e80| 72 65 2d 77 69 64 74 68 | 20 67 6f 6d 6f 6b 75 2d |re-width| gomoku-|
|00003e90| 62 6f 61 72 64 2d 77 69 | 64 74 68 5d 20 33 20 22 |board-wi|dth] 3 "|
|00003ea0| 5c 0a 52 65 74 75 72 6e | 20 74 68 65 20 62 6f 61 |\.Return| the boa|
|00003eb0| 72 64 20 63 6f 6c 75 6d | 6e 20 77 68 65 72 65 20 |rd colum|n where |
|00003ec0| 70 6f 69 6e 74 20 69 73 | 2c 20 6f 72 20 6e 69 6c |point is|, or nil|
|00003ed0| 20 69 66 20 69 74 20 69 | 73 20 6e 6f 74 20 61 20 | if it i|s not a |
|00003ee0| 62 6f 61 72 64 20 63 6f | 6c 75 6d 6e 2e 22 5d 29 |board co|lumn."])|
|00003ef0| 0a 28 64 65 66 61 6c 69 | 61 73 20 27 67 6f 6d 6f |.(defali|as 'gomo|
|00003f00| 6b 75 2d 70 6f 69 6e 74 | 2d 79 20 23 5b 6e 69 6c |ku-point|-y #[nil|
|00003f10| 20 22 c0 c1 60 5c 22 5c | 6e 5a c1 5a 89 1b c4 59 | "..`\"\|nZ.Z...Y|
|00003f20| 85 24 00 0b 0d a6 c4 55 | 85 24 00 0b 0d a5 54 89 |.$.....U|.$....T.|
|00003f30| 13 0e 06 58 85 24 00 0b | 29 87 22 20 5b 63 6f 75 |...X.$..|)." [cou|
|00003f40| 6e 74 2d 6c 69 6e 65 73 | 20 31 20 67 6f 6d 6f 6b |nt-lines| 1 gomok|
|00003f50| 75 2d 79 2d 6f 66 66 73 | 65 74 20 72 6f 77 20 30 |u-y-offs|et row 0|
|00003f60| 20 67 6f 6d 6f 6b 75 2d | 73 71 75 61 72 65 2d 68 | gomoku-|square-h|
|00003f70| 65 69 67 68 74 20 67 6f | 6d 6f 6b 75 2d 62 6f 61 |eight go|moku-boa|
|00003f80| 72 64 2d 68 65 69 67 68 | 74 5d 20 34 20 22 5c 0a |rd-heigh|t] 4 "\.|
|00003f90| 52 65 74 75 72 6e 20 74 | 68 65 20 62 6f 61 72 64 |Return t|he board|
|00003fa0| 20 72 6f 77 20 77 68 65 | 72 65 20 70 6f 69 6e 74 | row whe|re point|
|00003fb0| 20 69 73 2c 20 6f 72 20 | 6e 69 6c 20 69 66 20 69 | is, or |nil if i|
|00003fc0| 74 20 69 73 20 6e 6f 74 | 20 61 20 62 6f 61 72 64 |t is not| a board|
|00003fd0| 20 72 6f 77 2e 22 5d 29 | 0a 28 64 65 66 61 6c 69 | row."])|.(defali|
|00003fe0| 61 73 20 27 67 6f 6d 6f | 6b 75 2d 70 6f 69 6e 74 |as 'gomo|ku-point|
|00003ff0| 2d 73 71 75 61 72 65 20 | 23 5b 6e 69 6c 20 22 c0 |-square |#[nil ".|
|00004000| 89 19 1a c3 20 89 12 85 | 16 00 c4 20 89 11 85 16 |.... ...|... ....|
|00004010| 00 c5 5c 6e 09 5c 22 2a | 87 22 20 5b 6e 69 6c 20 |..\n.\"*|." [nil |
|00004020| 79 20 78 20 67 6f 6d 6f | 6b 75 2d 70 6f 69 6e 74 |y x gomo|ku-point|
|00004030| 2d 78 20 67 6f 6d 6f 6b | 75 2d 70 6f 69 6e 74 2d |-x gomok|u-point-|
|00004040| 79 20 67 6f 6d 6f 6b 75 | 2d 78 79 2d 74 6f 2d 69 |y gomoku|-xy-to-i|
|00004050| 6e 64 65 78 5d 20 33 20 | 22 5c 0a 52 65 74 75 72 |ndex] 3 |"\.Retur|
|00004060| 6e 20 74 68 65 20 69 6e | 64 65 78 20 6f 66 20 74 |n the in|dex of t|
|00004070| 68 65 20 73 71 75 61 72 | 65 20 70 6f 69 6e 74 20 |he squar|e point |
|00004080| 69 73 20 6f 6e 2c 20 6f | 72 20 6e 69 6c 20 69 66 |is on, o|r nil if|
|00004090| 20 6e 6f 74 20 6f 6e 20 | 74 68 65 20 62 6f 61 72 | not on |the boar|
|000040a0| 64 2e 22 5d 29 0a 28 64 | 65 66 61 6c 69 61 73 20 |d."]).(d|efalias |
|000040b0| 27 67 6f 6d 6f 6b 75 2d | 67 6f 74 6f 2d 73 71 75 |'gomoku-|goto-squ|
|000040c0| 61 72 65 20 23 5b 28 69 | 6e 64 65 78 29 20 22 c0 |are #[(i|ndex) ".|
|000040d0| c1 5c 6e 21 c3 5c 6e 21 | 5c 22 87 22 20 5b 67 6f |.\n!.\n!|\"." [go|
|000040e0| 6d 6f 6b 75 2d 67 6f 74 | 6f 2d 78 79 20 67 6f 6d |moku-got|o-xy gom|
|000040f0| 6f 6b 75 2d 69 6e 64 65 | 78 2d 74 6f 2d 78 20 69 |oku-inde|x-to-x i|
|00004100| 6e 64 65 78 20 67 6f 6d | 6f 6b 75 2d 69 6e 64 65 |ndex gom|oku-inde|
|00004110| 78 2d 74 6f 2d 79 5d 20 | 34 20 22 5c 0a 4d 6f 76 |x-to-y] |4 "\.Mov|
|00004120| 65 20 70 6f 69 6e 74 20 | 74 6f 20 73 71 75 61 72 |e point |to squar|
|00004130| 65 20 6e 75 6d 62 65 72 | 20 49 4e 44 45 58 2e 22 |e number| INDEX."|
|00004140| 5d 29 0a 28 64 65 66 61 | 6c 69 61 73 20 27 67 6f |]).(defa|lias 'go|
|00004150| 6d 6f 6b 75 2d 67 6f 74 | 6f 2d 78 79 20 23 5b 28 |moku-got|o-xy #[(|
|00004160| 78 20 79 29 20 22 c0 09 | 5c 6e 0b 53 5f c4 5c 5c |x y) "..|\n.S_.\\|
|00004170| 5c 5c 21 88 c5 0e 06 0e | 07 0e 08 53 5f 5c 5c 21 |\\!.....|...S_\\!|
|00004180| 87 22 20 5b 67 6f 74 6f | 2d 6c 69 6e 65 20 67 6f |." [goto|-line go|
|00004190| 6d 6f 6b 75 2d 79 2d 6f | 66 66 73 65 74 20 67 6f |moku-y-o|ffset go|
|000041a0| 6d 6f 6b 75 2d 73 71 75 | 61 72 65 2d 68 65 69 67 |moku-squ|are-heig|
|000041b0| 68 74 20 79 20 31 20 6d | 6f 76 65 2d 74 6f 2d 63 |ht y 1 m|ove-to-c|
|000041c0| 6f 6c 75 6d 6e 20 67 6f | 6d 6f 6b 75 2d 78 2d 6f |olumn go|moku-x-o|
|000041d0| 66 66 73 65 74 20 67 6f | 6d 6f 6b 75 2d 73 71 75 |ffset go|moku-squ|
|000041e0| 61 72 65 2d 77 69 64 74 | 68 20 78 5d 20 34 20 22 |are-widt|h x] 4 "|
|000041f0| 5c 0a 4d 6f 76 65 20 70 | 6f 69 6e 74 20 74 6f 20 |\.Move p|oint to |
|00004200| 73 71 75 61 72 65 20 61 | 74 20 58 2c 20 59 20 63 |square a|t X, Y c|
|00004210| 6f 6f 72 64 73 2e 22 5d | 29 0a 28 64 65 66 61 6c |oords."]|).(defal|
|00004220| 69 61 73 20 27 67 6f 6d | 6f 6b 75 2d 70 6c 6f 74 |ias 'gom|oku-plot|
|00004230| 2d 73 71 75 61 72 65 20 | 23 5b 28 73 71 75 61 72 |-square |#[(squar|
|00004240| 65 20 76 61 6c 75 65 29 | 20 22 c0 09 21 88 c2 0b |e value)| "..!...|
|00004250| c4 55 83 0f 00 c5 82 1a | 00 0b c6 55 83 19 00 c7 |.U......|...U....|
|00004260| 82 1a 00 c8 21 88 c9 ca | 21 87 22 20 5b 67 6f 6d |....!...|!." [gom|
|00004270| 6f 6b 75 2d 67 6f 74 6f | 2d 73 71 75 61 72 65 20 |oku-goto|-square |
|00004280| 73 71 75 61 72 65 20 67 | 6f 6d 6f 6b 75 2d 70 75 |square g|omoku-pu|
|00004290| 74 2d 63 68 61 72 20 76 | 61 6c 75 65 20 31 20 38 |t-char v|alue 1 8|
|000042a0| 38 20 36 20 37 39 20 34 | 36 20 73 69 74 2d 66 6f |8 6 79 4|6 sit-fo|
|000042b0| 72 20 30 5d 20 33 20 22 | 5c 0a 44 72 61 77 20 27 |r 0] 3 "|\.Draw '|
|000042c0| 58 27 2c 20 27 4f 27 20 | 6f 72 20 27 2e 27 20 6f |X', 'O' |or '.' o|
|000042d0| 6e 20 53 51 55 41 52 45 | 20 28 64 65 70 65 6e 64 |n SQUARE| (depend|
|000042e0| 69 6e 67 20 6f 6e 20 56 | 41 4c 55 45 29 2c 20 6c |ing on V|ALUE), l|
|000042f0| 65 61 76 65 20 70 6f 69 | 6e 74 20 74 68 65 72 65 |eave poi|nt there|
|00004300| 2e 22 5d 29 0a 28 64 65 | 66 61 6c 69 61 73 20 27 |."]).(de|falias '|
|00004310| 67 6f 6d 6f 6b 75 2d 70 | 75 74 2d 63 68 61 72 20 |gomoku-p|ut-char |
|00004320| 23 5b 28 63 68 61 72 29 | 20 22 c0 19 5c 6e 63 88 |#[(char)| "..\nc.|
|00004330| c3 c4 21 88 c5 c4 21 29 | 87 22 20 5b 74 20 69 6e |..!...!)|." [t in|
|00004340| 68 69 62 69 74 2d 72 65 | 61 64 2d 6f 6e 6c 79 20 |hibit-re|ad-only |
|00004350| 63 68 61 72 20 64 65 6c | 65 74 65 2d 63 68 61 72 |char del|ete-char|
|00004360| 20 31 20 62 61 63 6b 77 | 61 72 64 2d 63 68 61 72 | 1 backw|ard-char|
|00004370| 5d 20 32 20 22 5c 0a 44 | 72 61 77 20 43 48 41 52 |] 2 "\.D|raw CHAR|
|00004380| 20 6f 6e 20 74 68 65 20 | 47 6f 6d 6f 6b 75 20 73 | on the |Gomoku s|
|00004390| 63 72 65 65 6e 2e 22 5d | 29 0a 28 64 65 66 61 6c |creen."]|).(defal|
|000043a0| 69 61 73 20 27 67 6f 6d | 6f 6b 75 2d 69 6e 69 74 |ias 'gom|oku-init|
|000043b0| 2d 64 69 73 70 6c 61 79 | 20 23 5b 28 6e 20 6d 29 |-display| #[(n m)|
|000043c0| 20 22 c0 70 21 88 c1 1a | c3 20 88 c4 89 89 89 1d | ".p!...|. ......|
|000043d0| 1e 06 1e 07 1e 08 c9 0e | 5c 6e 53 cb 5c 22 cc 50 |........|\nS.\".P|
|000043e0| 16 08 cd ce cf 0e 10 53 | 0e 08 5c 22 5c 22 16 08 |.......S|..\"\"..|
|000043f0| c9 0e 11 cb 5c 22 cc 0e | 08 d2 52 16 08 c9 0e 11 |....\"..|..R.....|
|00004400| 0e 10 53 0e 5c 6e 5f d3 | 5c 5c 5c 5c cb 5c 22 89 |..S.\n_.|\\\\.\".|
|00004410| 16 07 d2 50 16 07 cd ce | cf 0e 14 53 0e 07 5c 22 |...P....|...S..\"|
|00004420| 5c 22 89 16 06 0e 08 50 | 16 06 cd ce cf 0e 15 53 |\".....P|.......S|
|00004430| 0e 06 5c 22 5c 22 16 06 | cd ce cf 0e 16 0e 07 5c |..\"\"..|.......\|
|00004440| 22 5c 22 89 15 0e 08 0e | 06 b1 03 88 2c d7 0e 10 |"\".....|....,...|
|00004450| 54 d8 a5 0e 15 54 d8 a5 | 5c 22 88 d9 da 21 29 87 |T....T..|\"...!).|
|00004460| 22 20 5b 62 75 66 66 65 | 72 2d 64 69 73 61 62 6c |" [buffe|r-disabl|
|00004470| 65 2d 75 6e 64 6f 20 74 | 20 69 6e 68 69 62 69 74 |e-undo t| inhibit|
|00004480| 2d 72 65 61 64 2d 6f 6e | 6c 79 20 65 72 61 73 65 |-read-on|ly erase|
|00004490| 2d 62 75 66 66 65 72 20 | 6e 69 6c 20 73 74 72 69 |-buffer |nil stri|
|000044a0| 6e 67 34 20 73 74 72 69 | 6e 67 33 20 73 74 72 69 |ng4 stri|ng3 stri|
|000044b0| 6e 67 32 20 73 74 72 69 | 6e 67 31 20 6d 61 6b 65 |ng2 stri|ng1 make|
|000044c0| 2d 73 74 72 69 6e 67 20 | 67 6f 6d 6f 6b 75 2d 73 |-string |gomoku-s|
|000044d0| 71 75 61 72 65 2d 77 69 | 64 74 68 20 33 32 20 22 |quare-wi|dth 32 "|
|000044e0| 2e 22 20 61 70 70 6c 79 | 20 63 6f 6e 63 61 74 20 |." apply| concat |
|000044f0| 6d 61 6b 65 2d 6c 69 73 | 74 20 6e 20 67 6f 6d 6f |make-lis|t n gomo|
|00004500| 6b 75 2d 78 2d 6f 66 66 | 73 65 74 20 22 5c 6e 22 |ku-x-off|set "\n"|
|00004510| 20 31 20 67 6f 6d 6f 6b | 75 2d 73 71 75 61 72 65 | 1 gomok|u-square|
|00004520| 2d 68 65 69 67 68 74 20 | 6d 20 67 6f 6d 6f 6b 75 |-height |m gomoku|
|00004530| 2d 79 2d 6f 66 66 73 65 | 74 20 67 6f 6d 6f 6b 75 |-y-offse|t gomoku|
|00004540| 2d 67 6f 74 6f 2d 78 79 | 20 32 20 73 69 74 2d 66 |-goto-xy| 2 sit-f|
|00004550| 6f 72 20 30 5d 20 36 20 | 22 5c 0a 44 69 73 70 6c |or 0] 6 |"\.Displ|
|00004560| 61 79 20 61 6e 20 4e 20 | 62 79 20 4d 20 47 6f 6d |ay an N |by M Gom|
|00004570| 6f 6b 75 20 62 6f 61 72 | 64 2e 22 5d 29 0a 28 64 |oku boar|d."]).(d|
|00004580| 65 66 61 6c 69 61 73 20 | 27 67 6f 6d 6f 6b 75 2d |efalias |'gomoku-|
|00004590| 64 69 73 70 6c 61 79 2d | 73 74 61 74 69 73 74 69 |display-|statisti|
|000045a0| 63 73 20 23 5b 6e 69 6c | 20 22 08 c1 55 84 0f 00 |cs #[nil| "..U...|
|000045b0| c2 c3 5c 66 0d 08 24 82 | 14 00 c2 c6 5c 66 0d 23 |..\f..$.|....\f.#|
|000045c0| 16 07 c8 c9 20 21 87 22 | 20 5b 67 6f 6d 6f 6b 75 |.... !."| [gomoku|
|000045d0| 2d 6e 75 6d 62 65 72 2d | 6f 66 2d 64 72 61 77 73 |-number-|of-draws|
|000045e0| 20 30 20 66 6f 72 6d 61 | 74 20 22 3a 20 57 6f 6e | 0 forma|t ": Won|
|000045f0| 20 25 64 2c 20 6c 6f 73 | 74 20 25 64 2c 20 64 72 | %d, los|t %d, dr|
|00004600| 65 77 20 25 64 22 20 67 | 6f 6d 6f 6b 75 2d 6e 75 |ew %d" g|omoku-nu|
|00004610| 6d 62 65 72 2d 6f 66 2d | 68 75 6d 61 6e 2d 77 69 |mber-of-|human-wi|
|00004620| 6e 73 20 67 6f 6d 6f 6b | 75 2d 6e 75 6d 62 65 72 |ns gomok|u-number|
|00004630| 2d 6f 66 2d 65 6d 61 63 | 73 2d 77 69 6e 73 20 22 |-of-emac|s-wins "|
|00004640| 3a 20 57 6f 6e 20 25 64 | 2c 20 6c 6f 73 74 20 25 |: Won %d|, lost %|
|00004650| 64 22 20 6d 6f 64 65 2d | 6c 69 6e 65 2d 70 72 6f |d" mode-|line-pro|
|00004660| 63 65 73 73 20 73 65 74 | 2d 62 75 66 66 65 72 2d |cess set|-buffer-|
|00004670| 6d 6f 64 69 66 69 65 64 | 2d 70 20 62 75 66 66 65 |modified|-p buffe|
|00004680| 72 2d 6d 6f 64 69 66 69 | 65 64 2d 70 5d 20 35 20 |r-modifi|ed-p] 5 |
|00004690| 22 5c 0a 4f 62 6e 6f 78 | 69 6f 75 73 6c 79 20 64 |"\.Obnox|iously d|
|000046a0| 69 73 70 6c 61 79 20 73 | 6f 6d 65 20 73 74 61 74 |isplay s|ome stat|
|000046b0| 69 73 74 69 63 73 20 61 | 62 6f 75 74 20 70 72 65 |istics a|bout pre|
|000046c0| 76 69 6f 75 73 20 67 61 | 6d 65 73 20 69 6e 20 6d |vious ga|mes in m|
|000046d0| 6f 64 65 20 6c 69 6e 65 | 2e 22 5d 29 0a 28 64 65 |ode line|."]).(de|
|000046e0| 66 61 6c 69 61 73 20 27 | 67 6f 6d 6f 6b 75 2d 73 |falias '|gomoku-s|
|000046f0| 77 69 74 63 68 2d 74 6f | 2d 77 69 6e 64 6f 77 20 |witch-to|-window |
|00004700| 23 5b 6e 69 6c 20 22 c0 | c1 21 89 1a 83 0e 00 c3 |#[nil ".|.!......|
|00004710| 5c 6e 21 82 1b 00 5c 66 | 83 15 00 c5 20 88 c3 c1 |\n!...\f|.... ...|
|00004720| 21 88 c6 20 29 87 22 20 | 5b 67 65 74 2d 62 75 66 |!.. )." |[get-buf|
|00004730| 66 65 72 20 22 2a 47 6f | 6d 6f 6b 75 2a 22 20 62 |fer "*Go|moku*" b|
|00004740| 75 66 66 20 73 77 69 74 | 63 68 2d 74 6f 2d 62 75 |uff swit|ch-to-bu|
|00004750| 66 66 65 72 20 67 6f 6d | 6f 6b 75 2d 67 61 6d 65 |ffer gom|oku-game|
|00004760| 2d 69 6e 2d 70 72 6f 67 | 72 65 73 73 20 67 6f 6d |-in-prog|ress gom|
|00004770| 6f 6b 75 2d 63 72 61 73 | 68 2d 67 61 6d 65 20 67 |oku-cras|h-game g|
|00004780| 6f 6d 6f 6b 75 2d 6d 6f | 64 65 5d 20 33 20 22 5c |omoku-mo|de] 3 "\|
|00004790| 0a 46 69 6e 64 20 6f 72 | 20 63 72 65 61 74 65 20 |.Find or| create |
|000047a0| 74 68 65 20 47 6f 6d 6f | 6b 75 20 62 75 66 66 65 |the Gomo|ku buffe|
|000047b0| 72 2c 20 61 6e 64 20 64 | 69 73 70 6c 61 79 20 69 |r, and d|isplay i|
|000047c0| 74 2e 22 20 6e 69 6c 5d | 29 0a 28 64 65 66 76 61 |t." nil]|).(defva|
|000047d0| 72 20 67 6f 6d 6f 6b 75 | 2d 77 69 6e 6e 69 6e 67 |r gomoku|-winning|
|000047e0| 2d 71 74 75 70 6c 65 2d | 62 65 67 20 6e 69 6c 20 |-qtuple-|beg nil |
|000047f0| 22 5c 0a 46 69 72 73 74 | 20 73 71 75 61 72 65 20 |"\.First| square |
|00004800| 6f 66 20 74 68 65 20 77 | 69 6e 6e 69 6e 67 20 71 |of the w|inning q|
|00004810| 74 75 70 6c 65 2e 22 29 | 0a 28 64 65 66 76 61 72 |tuple.")|.(defvar|
|00004820| 20 67 6f 6d 6f 6b 75 2d | 77 69 6e 6e 69 6e 67 2d | gomoku-|winning-|
|00004830| 71 74 75 70 6c 65 2d 65 | 6e 64 20 6e 69 6c 20 22 |qtuple-e|nd nil "|
|00004840| 5c 0a 4c 61 73 74 20 73 | 71 75 61 72 65 20 6f 66 |\.Last s|quare of|
|00004850| 20 74 68 65 20 77 69 6e | 6e 69 6e 67 20 71 74 75 | the win|ning qtu|
|00004860| 70 6c 65 2e 22 29 0a 28 | 64 65 66 76 61 72 20 67 |ple.").(|defvar g|
|00004870| 6f 6d 6f 6b 75 2d 77 69 | 6e 6e 69 6e 67 2d 71 74 |omoku-wi|nning-qt|
|00004880| 75 70 6c 65 2d 64 78 20 | 6e 69 6c 20 22 5c 0a 44 |uple-dx |nil "\.D|
|00004890| 69 72 65 63 74 69 6f 6e | 20 6f 66 20 74 68 65 20 |irection| of the |
|000048a0| 77 69 6e 6e 69 6e 67 20 | 71 74 75 70 6c 65 20 28 |winning |qtuple (|
|000048b0| 61 6c 6f 6e 67 20 74 68 | 65 20 58 20 61 78 69 73 |along th|e X axis|
|000048c0| 29 2e 22 29 0a 28 64 65 | 66 76 61 72 20 67 6f 6d |).").(de|fvar gom|
|000048d0| 6f 6b 75 2d 77 69 6e 6e | 69 6e 67 2d 71 74 75 70 |oku-winn|ing-qtup|
|000048e0| 6c 65 2d 64 79 20 6e 69 | 6c 20 22 5c 0a 44 69 72 |le-dy ni|l "\.Dir|
|000048f0| 65 63 74 69 6f 6e 20 6f | 66 20 74 68 65 20 77 69 |ection o|f the wi|
|00004900| 6e 6e 69 6e 67 20 71 74 | 75 70 6c 65 20 28 61 6c |nning qt|uple (al|
|00004910| 6f 6e 67 20 74 68 65 20 | 59 20 61 78 69 73 29 2e |ong the |Y axis).|
|00004920| 22 29 0a 28 64 65 66 61 | 6c 69 61 73 20 27 67 6f |").(defa|lias 'go|
|00004930| 6d 6f 6b 75 2d 66 69 6e | 64 2d 66 69 6c 6c 65 64 |moku-fin|d-filled|
|00004940| 2d 71 74 75 70 6c 65 20 | 23 5b 28 73 71 75 61 72 |-qtuple |#[(squar|
|00004950| 65 20 76 61 6c 75 65 29 | 20 22 c0 09 5c 6e c3 c4 |e value)| "..\n..|
|00004960| 24 86 21 00 c0 09 5c 6e | c4 c3 24 86 21 00 c0 09 |$.!...\n|..$.!...|
|00004970| 5c 6e c3 89 24 86 21 00 | c0 09 5c 6e c5 c3 24 87 |\n..$.!.|..\n..$.|
|00004980| 22 20 5b 67 6f 6d 6f 6b | 75 2d 63 68 65 63 6b 2d |" [gomok|u-check-|
|00004990| 66 69 6c 6c 65 64 2d 71 | 74 75 70 6c 65 20 73 71 |filled-q|tuple sq|
|000049a0| 75 61 72 65 20 76 61 6c | 75 65 20 31 20 30 20 2d |uare val|ue 1 0 -|
|000049b0| 31 5d 20 35 20 22 5c 0a | 52 65 74 75 72 6e 20 54 |1] 5 "\.|Return T|
|000049c0| 20 69 66 20 53 51 55 41 | 52 45 20 62 65 6c 6f 6e | if SQUA|RE belon|
|000049d0| 67 73 20 74 6f 20 61 20 | 71 74 75 70 6c 65 20 66 |gs to a |qtuple f|
|000049e0| 69 6c 6c 65 64 20 77 69 | 74 68 20 56 41 4c 55 45 |illed wi|th VALUE|
|000049f0| 73 2e 22 5d 29 0a 28 64 | 65 66 61 6c 69 61 73 20 |s."]).(d|efalias |
|00004a00| 27 67 6f 6d 6f 6b 75 2d | 63 68 65 63 6b 2d 66 69 |'gomoku-|check-fi|
|00004a10| 6c 6c 65 64 2d 71 74 75 | 70 6c 65 20 23 5b 28 73 |lled-qtu|ple #[(s|
|00004a20| 71 75 61 72 65 20 76 61 | 6c 75 65 20 64 78 20 64 |quare va|lue dx d|
|00004a30| 79 29 20 22 c0 89 09 89 | c2 0b 5c 66 5c 22 c5 1e |y) "....|..\f\"..|
|00004a40| 06 1e 07 1e 08 1e 09 1e | 5c 6e 89 1e 0b cc 56 83 |........|\n....V.|
|00004a50| 35 00 0e 0d 0e 0e 0e 09 | 0e 07 5a 89 16 09 48 55 |5.......|..Z...HU|
|00004a60| 83 35 00 0e 0b 53 89 16 | 0b 82 16 00 0e 0b cf 5c |.5...S..|.......\|
|00004a70| 5c 16 06 0e 5c 6e 0e 06 | 57 83 5d 00 0e 0d 0e 0e |\...\n..|W.].....|
|00004a80| 0e 08 0e 07 5c 5c 89 16 | 08 48 55 83 5d 00 0e 5c |....\\..|.HU.]..\|
|00004a90| 6e 54 89 16 5c 6e 82 3d | 00 0e 5c 6e 0e 06 55 85 |nT..\n.=|..\n..U.|
|00004aa0| 7e 00 09 0e 0b 0e 07 5f | 5c 5c 16 10 09 0e 5c 6e |~......_|\\....\n|
|00004ab0| 0e 07 5f 5c 5c 16 11 0b | 16 12 5c 66 16 13 d4 2e |.._\\...|..\f....|
|00004ac0| 06 87 22 20 5b 30 20 73 | 71 75 61 72 65 20 67 6f |.." [0 s|quare go|
|00004ad0| 6d 6f 6b 75 2d 78 79 2d | 74 6f 2d 69 6e 64 65 78 |moku-xy-|to-index|
|00004ae0| 20 64 78 20 64 79 20 6e | 69 6c 20 61 2b 34 20 64 | dx dy n|il a+4 d|
|00004af0| 65 70 6c 20 72 69 67 68 | 74 20 6c 65 66 74 20 62 |epl righ|t left b|
|00004b00| 20 61 20 2d 34 20 76 61 | 6c 75 65 20 67 6f 6d 6f | a -4 va|lue gomo|
|00004b10| 6b 75 2d 62 6f 61 72 64 | 20 34 20 67 6f 6d 6f 6b |ku-board| 4 gomok|
|00004b20| 75 2d 77 69 6e 6e 69 6e | 67 2d 71 74 75 70 6c 65 |u-winnin|g-qtuple|
|00004b30| 2d 62 65 67 20 67 6f 6d | 6f 6b 75 2d 77 69 6e 6e |-beg gom|oku-winn|
|00004b40| 69 6e 67 2d 71 74 75 70 | 6c 65 2d 65 6e 64 20 67 |ing-qtup|le-end g|
|00004b50| 6f 6d 6f 6b 75 2d 77 69 | 6e 6e 69 6e 67 2d 71 74 |omoku-wi|nning-qt|
|00004b60| 75 70 6c 65 2d 64 78 20 | 67 6f 6d 6f 6b 75 2d 77 |uple-dx |gomoku-w|
|00004b70| 69 6e 6e 69 6e 67 2d 71 | 74 75 70 6c 65 2d 64 79 |inning-q|tuple-dy|
|00004b80| 20 74 5d 20 38 20 22 5c | 0a 52 65 74 75 72 6e 20 | t] 8 "\|.Return |
|00004b90| 54 20 69 66 20 53 51 55 | 41 52 45 20 62 65 6c 6f |T if SQU|ARE belo|
|00004ba0| 6e 67 73 20 74 6f 20 61 | 20 71 74 75 70 6c 65 20 |ngs to a| qtuple |
|00004bb0| 66 69 6c 6c 65 64 20 20 | 77 69 74 68 20 56 41 4c |filled |with VAL|
|00004bc0| 55 45 73 20 61 6c 6f 6e | 67 20 44 58 2c 20 44 59 |UEs alon|g DX, DY|
|00004bd0| 2e 22 5d 29 0a 28 64 65 | 66 61 6c 69 61 73 20 27 |."]).(de|falias '|
|00004be0| 67 6f 6d 6f 6b 75 2d 63 | 72 6f 73 73 2d 77 69 6e |gomoku-c|ross-win|
|00004bf0| 6e 69 6e 67 2d 71 74 75 | 70 6c 65 20 23 5b 6e 69 |ning-qtu|ple #[ni|
|00004c00| 6c 20 22 c0 09 5c 6e 0b | 5c 66 24 87 22 20 5b 67 |l "..\n.|\f$." [g|
|00004c10| 6f 6d 6f 6b 75 2d 63 72 | 6f 73 73 2d 71 74 75 70 |omoku-cr|oss-qtup|
|00004c20| 6c 65 20 67 6f 6d 6f 6b | 75 2d 77 69 6e 6e 69 6e |le gomok|u-winnin|
|00004c30| 67 2d 71 74 75 70 6c 65 | 2d 62 65 67 20 67 6f 6d |g-qtuple|-beg gom|
|00004c40| 6f 6b 75 2d 77 69 6e 6e | 69 6e 67 2d 71 74 75 70 |oku-winn|ing-qtup|
|00004c50| 6c 65 2d 65 6e 64 20 67 | 6f 6d 6f 6b 75 2d 77 69 |le-end g|omoku-wi|
|00004c60| 6e 6e 69 6e 67 2d 71 74 | 75 70 6c 65 2d 64 78 20 |nning-qt|uple-dx |
|00004c70| 67 6f 6d 6f 6b 75 2d 77 | 69 6e 6e 69 6e 67 2d 71 |gomoku-w|inning-q|
|00004c80| 74 75 70 6c 65 2d 64 79 | 5d 20 35 20 22 5c 0a 43 |tuple-dy|] 5 "\.C|
|00004c90| 72 6f 73 73 20 77 69 6e | 6e 69 6e 67 20 71 74 75 |ross win|ning qtu|
|00004ca0| 70 6c 65 2c 20 61 73 20 | 66 6f 75 6e 64 20 62 79 |ple, as |found by|
|00004cb0| 20 60 67 6f 6d 6f 6b 75 | 2d 66 69 6e 64 2d 66 69 | `gomoku|-find-fi|
|00004cc0| 6c 6c 65 64 2d 71 74 75 | 70 6c 65 27 2e 22 5d 29 |lled-qtu|ple'."])|
|00004cd0| 0a 28 64 65 66 61 6c 69 | 61 73 20 27 67 6f 6d 6f |.(defali|as 'gomo|
|00004ce0| 6b 75 2d 63 72 6f 73 73 | 2d 71 74 75 70 6c 65 20 |ku-cross|-qtuple |
|00004cf0| 23 5b 28 73 71 75 61 72 | 65 31 20 73 71 75 61 72 |#[(squar|e1 squar|
|00004d00| 65 32 20 64 78 20 64 79 | 29 20 22 8a c0 09 5c 6e |e2 dx dy|) "...\n|
|00004d10| 5c 22 1b 5c 66 0d 55 84 | aa 00 c6 5c 66 21 88 5c |\".\f.U.|...\f!.\|
|00004d20| 66 0b 5c 5c 14 09 c7 55 | 83 3e 00 5c 6e c8 55 83 |f.\\...U|.>.\n.U.|
|00004d30| 3e 00 c7 1e 09 0e 09 0e | 5c 6e 57 83 3a 00 0e 09 |>.......|\nW.:...|
|00004d40| 54 16 09 c7 75 88 cb cc | 21 88 82 23 00 29 82 06 |T...u...|!..#.)..|
|00004d50| 00 09 c8 55 83 69 00 5c | 6e c7 55 83 69 00 c7 1e |...U.i.\|n.U.i...|
|00004d60| 09 0e 09 0e 0d 57 83 65 | 00 0e 09 54 16 09 ce c7 |.....W.e|...T....|
|00004d70| 21 88 cb cf 21 88 82 4d | 00 29 82 06 00 09 d0 55 |!...!..M|.).....U|
|00004d80| 83 8a 00 5c 6e c7 55 83 | 8a 00 d1 0e 5c 6e d2 a5 |...\n.U.|....\n..|
|00004d90| 21 88 ce 0e 0d d2 a5 21 | 88 cb d3 21 88 82 06 00 |!......!|...!....|
|00004da0| 09 c7 55 83 06 00 5c 6e | c7 55 83 06 00 0e 5c 6e |..U...\n|.U....\n|
|00004db0| d2 a5 75 88 ce 0e 0d d2 | a5 21 88 cb d4 21 88 82 |..u.....|.!...!..|
|00004dc0| 06 00 2a d5 c8 21 87 22 | 20 5b 67 6f 6d 6f 6b 75 |..*..!."| [gomoku|
|00004dd0| 2d 78 79 2d 74 6f 2d 69 | 6e 64 65 78 20 64 78 20 |-xy-to-i|ndex dx |
|00004de0| 64 79 20 64 65 70 6c 20 | 73 71 75 61 72 65 31 20 |dy depl |square1 |
|00004df0| 73 71 75 61 72 65 32 20 | 67 6f 6d 6f 6b 75 2d 67 |square2 |gomoku-g|
|00004e00| 6f 74 6f 2d 73 71 75 61 | 72 65 20 31 20 30 20 6e |oto-squa|re 1 0 n|
|00004e10| 20 67 6f 6d 6f 6b 75 2d | 73 71 75 61 72 65 2d 77 | gomoku-|square-w|
|00004e20| 69 64 74 68 20 67 6f 6d | 6f 6b 75 2d 70 75 74 2d |idth gom|oku-put-|
|00004e30| 63 68 61 72 20 34 35 20 | 67 6f 6d 6f 6b 75 2d 73 |char 45 |gomoku-s|
|00004e40| 71 75 61 72 65 2d 68 65 | 69 67 68 74 20 6e 65 78 |quare-he|ight nex|
|00004e50| 74 2d 6c 69 6e 65 20 31 | 32 34 20 2d 31 20 62 61 |t-line 1|24 -1 ba|
|00004e60| 63 6b 77 61 72 64 2d 63 | 68 61 72 20 32 20 34 37 |ckward-c|har 2 47|
|00004e70| 20 39 32 20 73 69 74 2d | 66 6f 72 5d 20 33 20 22 | 92 sit-|for] 3 "|
|00004e80| 5c 0a 43 72 6f 73 73 20 | 65 76 65 72 79 20 73 71 |\.Cross |every sq|
|00004e90| 75 61 72 65 20 62 65 74 | 77 65 65 6e 20 53 51 55 |uare bet|ween SQU|
|00004ea0| 41 52 45 31 20 61 6e 64 | 20 53 51 55 41 52 45 32 |ARE1 and| SQUARE2|
|00004eb0| 20 69 6e 20 74 68 65 20 | 44 58 2c 20 44 59 20 64 | in the |DX, DY d|
|00004ec0| 69 72 65 63 74 69 6f 6e | 2e 22 5d 29 0a 28 64 65 |irection|."]).(de|
|00004ed0| 66 61 6c 69 61 73 20 27 | 67 6f 6d 6f 6b 75 2d 6d |falias '|gomoku-m|
|00004ee0| 6f 76 65 2d 6c 65 66 74 | 20 23 5b 6e 69 6c 20 22 |ove-left| #[nil "|
|00004ef0| c0 20 19 c2 09 84 5c 66 | 00 c3 82 17 00 09 c3 56 |. ....\f|.......V|
|00004f00| 83 16 00 5c 66 82 17 00 | c5 21 29 87 22 20 5b 67 |...\f...|.!)." [g|
|00004f10| 6f 6d 6f 6b 75 2d 70 6f | 69 6e 74 2d 78 20 78 20 |omoku-po|int-x x |
|00004f20| 62 61 63 6b 77 61 72 64 | 2d 63 68 61 72 20 31 20 |backward|-char 1 |
|00004f30| 67 6f 6d 6f 6b 75 2d 73 | 71 75 61 72 65 2d 77 69 |gomoku-s|quare-wi|
|00004f40| 64 74 68 20 30 5d 20 33 | 20 22 5c 0a 4d 6f 76 65 |dth 0] 3| "\.Move|
|00004f50| 20 70 6f 69 6e 74 20 62 | 61 63 6b 77 61 72 64 20 | point b|ackward |
|00004f60| 6f 6e 65 20 63 6f 6c 75 | 6d 6e 20 6f 6e 20 74 68 |one colu|mn on th|
|00004f70| 65 20 47 6f 6d 6f 6b 75 | 20 62 6f 61 72 64 2e 22 |e Gomoku| board."|
|00004f80| 20 6e 69 6c 5d 29 0a 28 | 64 65 66 61 6c 69 61 73 | nil]).(|defalias|
|00004f90| 20 27 67 6f 6d 6f 6b 75 | 2d 6d 6f 76 65 2d 72 69 | 'gomoku|-move-ri|
|00004fa0| 67 68 74 20 23 5b 6e 69 | 6c 20 22 c0 20 89 19 84 |ght #[ni|l ". ...|
|00004fb0| 0b 00 c2 82 16 00 09 0b | 57 83 15 00 5c 66 82 16 |........|W...\f..|
|00004fc0| 00 c5 75 29 87 22 20 5b | 67 6f 6d 6f 6b 75 2d 70 |..u)." [|gomoku-p|
|00004fd0| 6f 69 6e 74 2d 78 20 78 | 20 31 20 67 6f 6d 6f 6b |oint-x x| 1 gomok|
|00004fe0| 75 2d 62 6f 61 72 64 2d | 77 69 64 74 68 20 67 6f |u-board-|width go|
|00004ff0| 6d 6f 6b 75 2d 73 71 75 | 61 72 65 2d 77 69 64 74 |moku-squ|are-widt|
|00005000| 68 20 30 5d 20 33 20 22 | 5c 0a 4d 6f 76 65 20 70 |h 0] 3 "|\.Move p|
|00005010| 6f 69 6e 74 20 66 6f 72 | 77 61 72 64 20 6f 6e 65 |oint for|ward one|
|00005020| 20 63 6f 6c 75 6d 6e 20 | 6f 6e 20 74 68 65 20 47 | column |on the G|
|00005030| 6f 6d 6f 6b 75 20 62 6f | 61 72 64 2e 22 20 6e 69 |omoku bo|ard." ni|
|00005040| 6c 5d 29 0a 28 64 65 66 | 61 6c 69 61 73 20 27 67 |l]).(def|alias 'g|
|00005050| 6f 6d 6f 6b 75 2d 6d 6f | 76 65 2d 64 6f 77 6e 20 |omoku-mo|ve-down |
|00005060| 23 5b 6e 69 6c 20 22 c0 | 20 19 c2 09 84 5c 66 00 |#[nil ".| ....\f.|
|00005070| c3 82 17 00 09 5c 66 57 | 83 16 00 0d 82 17 00 c6 |.....\fW|........|
|00005080| 21 29 87 22 20 5b 67 6f | 6d 6f 6b 75 2d 70 6f 69 |!)." [go|moku-poi|
|00005090| 6e 74 2d 79 20 79 20 6e | 65 78 74 2d 6c 69 6e 65 |nt-y y n|ext-line|
|000050a0| 20 31 20 67 6f 6d 6f 6b | 75 2d 62 6f 61 72 64 2d | 1 gomok|u-board-|
|000050b0| 68 65 69 67 68 74 20 67 | 6f 6d 6f 6b 75 2d 73 71 |height g|omoku-sq|
|000050c0| 75 61 72 65 2d 68 65 69 | 67 68 74 20 30 5d 20 33 |uare-hei|ght 0] 3|
|000050d0| 20 22 5c 0a 4d 6f 76 65 | 20 70 6f 69 6e 74 20 64 | "\.Move| point d|
|000050e0| 6f 77 6e 20 6f 6e 65 20 | 72 6f 77 20 6f 6e 20 74 |own one |row on t|
|000050f0| 68 65 20 47 6f 6d 6f 6b | 75 20 62 6f 61 72 64 2e |he Gomok|u board.|
|00005100| 22 20 6e 69 6c 5d 29 0a | 28 64 65 66 61 6c 69 61 |" nil]).|(defalia|
|00005110| 73 20 27 67 6f 6d 6f 6b | 75 2d 6d 6f 76 65 2d 75 |s 'gomok|u-move-u|
|00005120| 70 20 23 5b 6e 69 6c 20 | 22 c0 20 19 c2 09 84 5c |p #[nil |". ....\|
|00005130| 66 00 c3 82 17 00 09 c3 | 56 83 16 00 5c 66 82 17 |f.......|V...\f..|
|00005140| 00 c5 21 29 87 22 20 5b | 67 6f 6d 6f 6b 75 2d 70 |..!)." [|gomoku-p|
|00005150| 6f 69 6e 74 2d 79 20 79 | 20 70 72 65 76 69 6f 75 |oint-y y| previou|
|00005160| 73 2d 6c 69 6e 65 20 31 | 20 67 6f 6d 6f 6b 75 2d |s-line 1| gomoku-|
|00005170| 73 71 75 61 72 65 2d 68 | 65 69 67 68 74 20 30 5d |square-h|eight 0]|
|00005180| 20 33 20 22 5c 0a 4d 6f | 76 65 20 70 6f 69 6e 74 | 3 "\.Mo|ve point|
|00005190| 20 75 70 20 6f 6e 65 20 | 72 6f 77 20 6f 6e 20 74 | up one |row on t|
|000051a0| 68 65 20 47 6f 6d 6f 6b | 75 20 62 6f 61 72 64 2e |he Gomok|u board.|
|000051b0| 22 20 6e 69 6c 5d 29 0a | 28 64 65 66 61 6c 69 61 |" nil]).|(defalia|
|000051c0| 73 20 27 67 6f 6d 6f 6b | 75 2d 6d 6f 76 65 2d 6e |s 'gomok|u-move-n|
|000051d0| 65 20 23 5b 6e 69 6c 20 | 22 c0 20 88 c1 20 87 22 |e #[nil |". .. ."|
|000051e0| 20 5b 67 6f 6d 6f 6b 75 | 2d 6d 6f 76 65 2d 75 70 | [gomoku|-move-up|
|000051f0| 20 67 6f 6d 6f 6b 75 2d | 6d 6f 76 65 2d 72 69 67 | gomoku-|move-rig|
|00005200| 68 74 5d 20 31 20 22 5c | 0a 4d 6f 76 65 20 70 6f |ht] 1 "\|.Move po|
|00005210| 69 6e 74 20 4e 6f 72 74 | 68 20 45 61 73 74 20 6f |int Nort|h East o|
|00005220| 6e 20 74 68 65 20 47 6f | 6d 6f 6b 75 20 62 6f 61 |n the Go|moku boa|
|00005230| 72 64 2e 22 20 6e 69 6c | 5d 29 0a 28 64 65 66 61 |rd." nil|]).(defa|
|00005240| 6c 69 61 73 20 27 67 6f | 6d 6f 6b 75 2d 6d 6f 76 |lias 'go|moku-mov|
|00005250| 65 2d 73 65 20 23 5b 6e | 69 6c 20 22 c0 20 88 c1 |e-se #[n|il ". ..|
|00005260| 20 87 22 20 5b 67 6f 6d | 6f 6b 75 2d 6d 6f 76 65 | ." [gom|oku-move|
|00005270| 2d 64 6f 77 6e 20 67 6f | 6d 6f 6b 75 2d 6d 6f 76 |-down go|moku-mov|
|00005280| 65 2d 72 69 67 68 74 5d | 20 31 20 22 5c 0a 4d 6f |e-right]| 1 "\.Mo|
|00005290| 76 65 20 70 6f 69 6e 74 | 20 53 6f 75 74 68 20 45 |ve point| South E|
|000052a0| 61 73 74 20 6f 6e 20 74 | 68 65 20 47 6f 6d 6f 6b |ast on t|he Gomok|
|000052b0| 75 20 62 6f 61 72 64 2e | 22 20 6e 69 6c 5d 29 0a |u board.|" nil]).|
|000052c0| 28 64 65 66 61 6c 69 61 | 73 20 27 67 6f 6d 6f 6b |(defalia|s 'gomok|
|000052d0| 75 2d 6d 6f 76 65 2d 6e | 77 20 23 5b 6e 69 6c 20 |u-move-n|w #[nil |
|000052e0| 22 c0 20 88 c1 20 87 22 | 20 5b 67 6f 6d 6f 6b 75 |". .. ."| [gomoku|
|000052f0| 2d 6d 6f 76 65 2d 75 70 | 20 67 6f 6d 6f 6b 75 2d |-move-up| gomoku-|
|00005300| 6d 6f 76 65 2d 6c 65 66 | 74 5d 20 31 20 22 5c 0a |move-lef|t] 1 "\.|
|00005310| 4d 6f 76 65 20 70 6f 69 | 6e 74 20 4e 6f 72 74 68 |Move poi|nt North|
|00005320| 20 57 65 73 74 20 6f 6e | 20 74 68 65 20 47 6f 6d | West on| the Gom|
|00005330| 6f 6b 75 20 62 6f 61 72 | 64 2e 22 20 6e 69 6c 5d |oku boar|d." nil]|
|00005340| 29 0a 28 64 65 66 61 6c | 69 61 73 20 27 67 6f 6d |).(defal|ias 'gom|
|00005350| 6f 6b 75 2d 6d 6f 76 65 | 2d 73 77 20 23 5b 6e 69 |oku-move|-sw #[ni|
|00005360| 6c 20 22 c0 20 88 c1 20 | 87 22 20 5b 67 6f 6d 6f |l ". .. |." [gomo|
|00005370| 6b 75 2d 6d 6f 76 65 2d | 64 6f 77 6e 20 67 6f 6d |ku-move-|down gom|
|00005380| 6f 6b 75 2d 6d 6f 76 65 | 2d 6c 65 66 74 5d 20 31 |oku-move|-left] 1|
|00005390| 20 22 5c 0a 4d 6f 76 65 | 20 70 6f 69 6e 74 20 53 | "\.Move| point S|
|000053a0| 6f 75 74 68 20 57 65 73 | 74 20 6f 6e 20 74 68 65 |outh Wes|t on the|
|000053b0| 20 47 6f 6d 6f 6b 75 20 | 62 6f 61 72 64 2e 22 20 | Gomoku |board." |
|000053c0| 6e 69 6c 5d 29 0a 28 70 | 72 6f 76 69 64 65 20 28 |nil]).(p|rovide (|
|000053d0| 71 75 6f 74 65 20 67 6f | 6d 6f 6b 75 29 29 0a |quote go|moku)). |
+--------+-------------------------+-------------------------+--------+--------+